// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.17.3
// source: operations.proto

package gitalypb

import (
	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)
)

// CreateTreeError represents an error which happened when computing the
// cherry-pick.
type UserCherryPickResponse_CreateTreeError int32

const (
	// NONE denotes that no error occurred.
	UserCherryPickResponse_NONE UserCherryPickResponse_CreateTreeError = 0
	// EMPTY denotes that the cherry-pick would've resulted in an empty commit,
	// typically because it has already been applied to the target branch.
	UserCherryPickResponse_EMPTY UserCherryPickResponse_CreateTreeError = 1
	// CONFLICT denotes that the cherry-pick resulted in a conflict.
	UserCherryPickResponse_CONFLICT UserCherryPickResponse_CreateTreeError = 2
)

// Enum value maps for UserCherryPickResponse_CreateTreeError.
var (
	UserCherryPickResponse_CreateTreeError_name = map[int32]string{
		0: "NONE",
		1: "EMPTY",
		2: "CONFLICT",
	}
	UserCherryPickResponse_CreateTreeError_value = map[string]int32{
		"NONE":     0,
		"EMPTY":    1,
		"CONFLICT": 2,
	}
)

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

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

func (UserCherryPickResponse_CreateTreeError) Descriptor() protoreflect.EnumDescriptor {
	return file_operations_proto_enumTypes[0].Descriptor()
}

func (UserCherryPickResponse_CreateTreeError) Type() protoreflect.EnumType {
	return &file_operations_proto_enumTypes[0]
}

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

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

// CreateTreeError represents an error which happened when computing the
// revert.
type UserRevertResponse_CreateTreeError int32

const (
	// NONE denotes that no error occurred.
	UserRevertResponse_NONE UserRevertResponse_CreateTreeError = 0
	// EMPTY denotes that the revert would've resulted in an empty commit,
	// typically because it has already been applied to the target branch.
	UserRevertResponse_EMPTY UserRevertResponse_CreateTreeError = 1
	// CONFLICT denotes that the revert resulted in a conflict.
	UserRevertResponse_CONFLICT UserRevertResponse_CreateTreeError = 2
)

// Enum value maps for UserRevertResponse_CreateTreeError.
var (
	UserRevertResponse_CreateTreeError_name = map[int32]string{
		0: "NONE",
		1: "EMPTY",
		2: "CONFLICT",
	}
	UserRevertResponse_CreateTreeError_value = map[string]int32{
		"NONE":     0,
		"EMPTY":    1,
		"CONFLICT": 2,
	}
)

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

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

func (UserRevertResponse_CreateTreeError) Descriptor() protoreflect.EnumDescriptor {
	return file_operations_proto_enumTypes[1].Descriptor()
}

func (UserRevertResponse_CreateTreeError) Type() protoreflect.EnumType {
	return &file_operations_proto_enumTypes[1]
}

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

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

type UserCommitFilesActionHeader_ActionType int32

const (
	// CREATE creates a new file.
	UserCommitFilesActionHeader_CREATE UserCommitFilesActionHeader_ActionType = 0
	// CREATE_DIR creates a new directory.
	UserCommitFilesActionHeader_CREATE_DIR UserCommitFilesActionHeader_ActionType = 1
	// UPDATE updates an existing file.
	UserCommitFilesActionHeader_UPDATE UserCommitFilesActionHeader_ActionType = 2
	// MOVE moves an existing file to a new path.
	UserCommitFilesActionHeader_MOVE UserCommitFilesActionHeader_ActionType = 3
	// DELETE deletes an existing file.
	UserCommitFilesActionHeader_DELETE UserCommitFilesActionHeader_ActionType = 4
	// CHMOD changes the permissions of an existing file.
	UserCommitFilesActionHeader_CHMOD UserCommitFilesActionHeader_ActionType = 5
)

// Enum value maps for UserCommitFilesActionHeader_ActionType.
var (
	UserCommitFilesActionHeader_ActionType_name = map[int32]string{
		0: "CREATE",
		1: "CREATE_DIR",
		2: "UPDATE",
		3: "MOVE",
		4: "DELETE",
		5: "CHMOD",
	}
	UserCommitFilesActionHeader_ActionType_value = map[string]int32{
		"CREATE":     0,
		"CREATE_DIR": 1,
		"UPDATE":     2,
		"MOVE":       3,
		"DELETE":     4,
		"CHMOD":      5,
	}
)

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

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

func (UserCommitFilesActionHeader_ActionType) Descriptor() protoreflect.EnumDescriptor {
	return file_operations_proto_enumTypes[2].Descriptor()
}

func (UserCommitFilesActionHeader_ActionType) Type() protoreflect.EnumType {
	return &file_operations_proto_enumTypes[2]
}

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

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

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

	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	BranchName []byte      `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	User       *User       `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
	StartPoint []byte      `protobuf:"bytes,4,opt,name=start_point,json=startPoint,proto3" json:"start_point,omitempty"`
}

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

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

func (*UserCreateBranchRequest) ProtoMessage() {}

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

func (x *UserCreateBranchRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserCreateBranchRequest) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserCreateBranchRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserCreateBranchRequest) GetStartPoint() []byte {
	if x != nil {
		return x.StartPoint
	}
	return nil
}

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

	Branch *Branch `protobuf:"bytes,1,opt,name=branch,proto3" json:"branch,omitempty"`
	// Error returned by the pre-receive hook. If no error was thrown,
	// it's the empty string ("")
	PreReceiveError string `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserCreateBranchResponse) ProtoMessage() {}

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

func (x *UserCreateBranchResponse) GetBranch() *Branch {
	if x != nil {
		return x.Branch
	}
	return nil
}

func (x *UserCreateBranchResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	BranchName []byte      `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	User       *User       `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
	Newrev     []byte      `protobuf:"bytes,4,opt,name=newrev,proto3" json:"newrev,omitempty"`
	Oldrev     []byte      `protobuf:"bytes,5,opt,name=oldrev,proto3" json:"oldrev,omitempty"`
}

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

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

func (*UserUpdateBranchRequest) ProtoMessage() {}

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

func (x *UserUpdateBranchRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserUpdateBranchRequest) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserUpdateBranchRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserUpdateBranchRequest) GetNewrev() []byte {
	if x != nil {
		return x.Newrev
	}
	return nil
}

func (x *UserUpdateBranchRequest) GetOldrev() []byte {
	if x != nil {
		return x.Oldrev
	}
	return nil
}

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

	PreReceiveError string `protobuf:"bytes,1,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserUpdateBranchResponse) ProtoMessage() {}

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

func (x *UserUpdateBranchResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	BranchName []byte      `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	User       *User       `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
}

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

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

func (*UserDeleteBranchRequest) ProtoMessage() {}

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

func (x *UserDeleteBranchRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserDeleteBranchRequest) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserDeleteBranchRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

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

	PreReceiveError string `protobuf:"bytes,1,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserDeleteBranchResponse) ProtoMessage() {}

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

func (x *UserDeleteBranchResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	TagName    []byte      `protobuf:"bytes,2,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"`
	User       *User       `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
}

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

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

func (*UserDeleteTagRequest) ProtoMessage() {}

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

func (x *UserDeleteTagRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserDeleteTagRequest) GetTagName() []byte {
	if x != nil {
		return x.TagName
	}
	return nil
}

func (x *UserDeleteTagRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

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

	PreReceiveError string `protobuf:"bytes,1,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserDeleteTagResponse) ProtoMessage() {}

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

func (x *UserDeleteTagResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	// repository is the repository in which the tag shall be created.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// tag_name is the name of the tag that shall be created.
	TagName []byte `protobuf:"bytes,2,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"`
	// user is the user as which the tag shall be created.
	User *User `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
	// target_revision is the revision which the tag should point to.
	TargetRevision []byte `protobuf:"bytes,4,opt,name=target_revision,json=targetRevision,proto3" json:"target_revision,omitempty"`
	// message is the message of the tag. If it is empty, a lightweight tag is
	// created. Otherwise, an annotated tag is created.
	Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// timestamp is the optional timestamp to use for the created tag tags. If
	// it's not set, the current time will be used. It's only used if an
	// annotated tag is being created.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserCreateTagRequest) ProtoMessage() {}

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

func (x *UserCreateTagRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserCreateTagRequest) GetTagName() []byte {
	if x != nil {
		return x.TagName
	}
	return nil
}

func (x *UserCreateTagRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserCreateTagRequest) GetTargetRevision() []byte {
	if x != nil {
		return x.TargetRevision
	}
	return nil
}

func (x *UserCreateTagRequest) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *UserCreateTagRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// tag is the newly created tag.
	Tag *Tag `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"`
	// exists denotes whether the tag has existed already.
	Exists bool `protobuf:"varint,2,opt,name=exists,proto3" json:"exists,omitempty"`
	// pre_receive_error contains an error message if updating the tag failed
	// because of a pre-receive error.
	PreReceiveError string `protobuf:"bytes,3,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserCreateTagResponse) ProtoMessage() {}

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

func (x *UserCreateTagResponse) GetTag() *Tag {
	if x != nil {
		return x.Tag
	}
	return nil
}

func (x *UserCreateTagResponse) GetExists() bool {
	if x != nil {
		return x.Exists
	}
	return false
}

func (x *UserCreateTagResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	// repository is the repository to compute the merge for.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user to compute the merge as. Its name and mail address are
	// used as author and committer of the merge.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// commit_id is the object ID (hash) of the object that shall be merged into
	// the target branch.
	CommitId string `protobuf:"bytes,3,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
	// branch is the branch into which the given commit shall be merged and whose
	// reference is going to be updated.
	Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
	// message is the message to use for the merge commit.
	Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// timestamp is the optional timestamp to use for the merge commit. If it's
	// not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// apply must only be set in the second message. Only if this second message
	// is sent and if apply is set to true will the branch be updated to point to
	// the merge commit.
	Apply bool `protobuf:"varint,6,opt,name=apply,proto3" json:"apply,omitempty"`
}

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

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

func (*UserMergeBranchRequest) ProtoMessage() {}

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

func (x *UserMergeBranchRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserMergeBranchRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserMergeBranchRequest) GetCommitId() string {
	if x != nil {
		return x.CommitId
	}
	return ""
}

func (x *UserMergeBranchRequest) GetBranch() []byte {
	if x != nil {
		return x.Branch
	}
	return nil
}

func (x *UserMergeBranchRequest) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *UserMergeBranchRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *UserMergeBranchRequest) GetApply() bool {
	if x != nil {
		return x.Apply
	}
	return false
}

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

	// First message
	// The merge commit the branch will be updated to. The caller can still abort the merge.
	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
	// Second message
	// If set, the merge has been applied to the branch.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,3,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	// PreReceiveError is never set. Instead, we return a proper gRPC error with
	// UserMergeBranchError details set to an AccessCheckError.
	//
	// Deprecated: Do not use.
	PreReceiveError string `protobuf:"bytes,4,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserMergeBranchResponse) ProtoMessage() {}

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

func (x *UserMergeBranchResponse) GetCommitId() string {
	if x != nil {
		return x.CommitId
	}
	return ""
}

func (x *UserMergeBranchResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

// Deprecated: Do not use.
func (x *UserMergeBranchResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

// UserMergeBranchError includes error descriptions which may be set as error
// details in case UserMergeBranch fails.
type UserMergeBranchError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Error:
	//	*UserMergeBranchError_AccessCheck
	//	*UserMergeBranchError_ReferenceUpdate
	Error isUserMergeBranchError_Error `protobuf_oneof:"error"`
}

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

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

func (*UserMergeBranchError) ProtoMessage() {}

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

func (m *UserMergeBranchError) GetError() isUserMergeBranchError_Error {
	if m != nil {
		return m.Error
	}
	return nil
}

func (x *UserMergeBranchError) GetAccessCheck() *AccessCheckError {
	if x, ok := x.GetError().(*UserMergeBranchError_AccessCheck); ok {
		return x.AccessCheck
	}
	return nil
}

func (x *UserMergeBranchError) GetReferenceUpdate() *ReferenceUpdateError {
	if x, ok := x.GetError().(*UserMergeBranchError_ReferenceUpdate); ok {
		return x.ReferenceUpdate
	}
	return nil
}

type isUserMergeBranchError_Error interface {
	isUserMergeBranchError_Error()
}

type UserMergeBranchError_AccessCheck struct {
	// AccessCheckError is set if the RPC failed because `/internal/allowed` failed.
	AccessCheck *AccessCheckError `protobuf:"bytes,1,opt,name=access_check,json=accessCheck,proto3,oneof"`
}

type UserMergeBranchError_ReferenceUpdate struct {
	// ReferenceUpdateError is set if the RPC failed because updating the
	// reference to the new object ID has failed.
	ReferenceUpdate *ReferenceUpdateError `protobuf:"bytes,2,opt,name=reference_update,json=referenceUpdate,proto3,oneof"`
}

func (*UserMergeBranchError_AccessCheck) isUserMergeBranchError_Error() {}

func (*UserMergeBranchError_ReferenceUpdate) isUserMergeBranchError_Error() {}

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

	// repository is the repository in which the merge shall be computed.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user as which the merge commit shall be created.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// source_sha is the object ID of the second parent of the computed merge.
	SourceSha string `protobuf:"bytes,3,opt,name=source_sha,json=sourceSha,proto3" json:"source_sha,omitempty"`
	// branch contains the name of the branch which should be used as the first
	// parent of the computed merge. It is deprecated in favor of
	// `first_parent_ref` and will be ignored in case it is set.
	Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
	// target_ref contains the fully qualified reference which should be updated
	// with the computed merge commit.
	TargetRef []byte `protobuf:"bytes,5,opt,name=target_ref,json=targetRef,proto3" json:"target_ref,omitempty"`
	// message is the message to use for the merge commit.
	Message []byte `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"`
	// first_parent_ref is the name of the reference which should be used as the
	// first parent of the computed merge. Overrides `branch`.
	FirstParentRef []byte `protobuf:"bytes,7,opt,name=first_parent_ref,json=firstParentRef,proto3" json:"first_parent_ref,omitempty"`
	// Allow conflicts to occur. Any conflict markers will be part of the merge commit.
	// When tree-based conflicts occur, no conflict markers will be added to the
	// file on the merge commit. The `Their` side of the conflict will be kept and
	// `Our` and `Ancestor` will be ignored.
	AllowConflicts bool `protobuf:"varint,8,opt,name=allow_conflicts,json=allowConflicts,proto3" json:"allow_conflicts,omitempty"`
	// timestamp is the optional timestamp to use for the merge commit. If it's
	// not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserMergeToRefRequest) ProtoMessage() {}

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

func (x *UserMergeToRefRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserMergeToRefRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserMergeToRefRequest) GetSourceSha() string {
	if x != nil {
		return x.SourceSha
	}
	return ""
}

func (x *UserMergeToRefRequest) GetBranch() []byte {
	if x != nil {
		return x.Branch
	}
	return nil
}

func (x *UserMergeToRefRequest) GetTargetRef() []byte {
	if x != nil {
		return x.TargetRef
	}
	return nil
}

func (x *UserMergeToRefRequest) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *UserMergeToRefRequest) GetFirstParentRef() []byte {
	if x != nil {
		return x.FirstParentRef
	}
	return nil
}

func (x *UserMergeToRefRequest) GetAllowConflicts() bool {
	if x != nil {
		return x.AllowConflicts
	}
	return false
}

func (x *UserMergeToRefRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// commit_id is the object ID of the computed merge commit.
	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
	// PreReceiveError is never set because this RPC does not perform
	// authentication via `/internal/allowed`.
	//
	// Deprecated: Do not use.
	PreReceiveError string `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserMergeToRefResponse) ProtoMessage() {}

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

func (x *UserMergeToRefResponse) GetCommitId() string {
	if x != nil {
		return x.CommitId
	}
	return ""
}

// Deprecated: Do not use.
func (x *UserMergeToRefResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

// OperationBranchUpdate contains the details of a branch update.
type OperationBranchUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// commit_id is set to the OID of the created commit if a branch was created or updated.
	CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
	// repo_created indicates whether the branch created was the first one in the repository.
	// Used for cache invalidation in GitLab.
	RepoCreated bool `protobuf:"varint,2,opt,name=repo_created,json=repoCreated,proto3" json:"repo_created,omitempty"`
	// branch_created indicates whether the branch already existed in the repository
	// and was updated or whether it was created. Used for cache invalidation in GitLab.
	BranchCreated bool `protobuf:"varint,3,opt,name=branch_created,json=branchCreated,proto3" json:"branch_created,omitempty"`
}

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

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

func (*OperationBranchUpdate) ProtoMessage() {}

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

func (x *OperationBranchUpdate) GetCommitId() string {
	if x != nil {
		return x.CommitId
	}
	return ""
}

func (x *OperationBranchUpdate) GetRepoCreated() bool {
	if x != nil {
		return x.RepoCreated
	}
	return false
}

func (x *OperationBranchUpdate) GetBranchCreated() bool {
	if x != nil {
		return x.BranchCreated
	}
	return false
}

// UserFFBranchRequest contains parameters for the UserFFBranch RPC.
type UserFFBranchRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// repository is the repository for which to perform the fast-forward merge.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user which to perform the fast-forward merge as. This is used
	// for authorization checks.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// commit_id is the commit ID to update the branch to.
	CommitId string `protobuf:"bytes,3,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"`
	// branch is the name of the branch that shall be update. This must be the
	// branch name only and not a fully qualified reference, e.g. "master"
	// instead of "refs/heads/master".
	Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
}

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

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

func (*UserFFBranchRequest) ProtoMessage() {}

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

func (x *UserFFBranchRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserFFBranchRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserFFBranchRequest) GetCommitId() string {
	if x != nil {
		return x.CommitId
	}
	return ""
}

func (x *UserFFBranchRequest) GetBranch() []byte {
	if x != nil {
		return x.Branch
	}
	return nil
}

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

	BranchUpdate    *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	PreReceiveError string                 `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserFFBranchResponse) ProtoMessage() {}

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

func (x *UserFFBranchResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

func (x *UserFFBranchResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	// repository is the repository into which the cherry-pick shall be
	// performed.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user to perform the cherry-pick as. This is used for
	// authorization checks and as the committer of the computed cherry-pick.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// commit is the commit to cherry-pick onto the given branch.
	Commit *GitCommit `protobuf:"bytes,3,opt,name=commit,proto3" json:"commit,omitempty"`
	// branch_name is the name of the branch onto which the cherry-pick shall be
	// executed.
	BranchName []byte `protobuf:"bytes,4,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	// message is the message to use for the cherry-picked commit.
	Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// start_branch_name is is used in case the branch_name branch does not
	// exist. In that case, it will be created from the start_branch_name.
	StartBranchName []byte `protobuf:"bytes,6,opt,name=start_branch_name,json=startBranchName,proto3" json:"start_branch_name,omitempty"`
	// start_repository is used in case the branch_name branch does not exist. In
	// that case, it will be created from start_branch_name in the
	// start_repository.
	StartRepository *Repository `protobuf:"bytes,7,opt,name=start_repository,json=startRepository,proto3" json:"start_repository,omitempty"`
	// dry_run will compute the cherry-pick, but not update the target branch.
	DryRun bool `protobuf:"varint,8,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	// timestamp is the optional timestamp to use for the created cherry-picked
	// commit's committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserCherryPickRequest) ProtoMessage() {}

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

func (x *UserCherryPickRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserCherryPickRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserCherryPickRequest) GetCommit() *GitCommit {
	if x != nil {
		return x.Commit
	}
	return nil
}

func (x *UserCherryPickRequest) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserCherryPickRequest) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *UserCherryPickRequest) GetStartBranchName() []byte {
	if x != nil {
		return x.StartBranchName
	}
	return nil
}

func (x *UserCherryPickRequest) GetStartRepository() *Repository {
	if x != nil {
		return x.StartRepository
	}
	return nil
}

func (x *UserCherryPickRequest) GetDryRun() bool {
	if x != nil {
		return x.DryRun
	}
	return false
}

func (x *UserCherryPickRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// branch_update represents details about the updated branch.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	// create_tree_error contains the error message if creation of the tree
	// failed.
	CreateTreeError string `protobuf:"bytes,2,opt,name=create_tree_error,json=createTreeError,proto3" json:"create_tree_error,omitempty"`
	// commit_error contains the error message if updating the reference failed.
	CommitError string `protobuf:"bytes,3,opt,name=commit_error,json=commitError,proto3" json:"commit_error,omitempty"`
	// pre_receive_error contains the error message if the pre-receive hook
	// failed.
	PreReceiveError string `protobuf:"bytes,4,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
	// create_tree_error_code contains the error code if creation of the tree
	// failed.
	CreateTreeErrorCode UserCherryPickResponse_CreateTreeError `protobuf:"varint,5,opt,name=create_tree_error_code,json=createTreeErrorCode,proto3,enum=gitaly.UserCherryPickResponse_CreateTreeError" json:"create_tree_error_code,omitempty"`
}

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

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

func (*UserCherryPickResponse) ProtoMessage() {}

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

func (x *UserCherryPickResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

func (x *UserCherryPickResponse) GetCreateTreeError() string {
	if x != nil {
		return x.CreateTreeError
	}
	return ""
}

func (x *UserCherryPickResponse) GetCommitError() string {
	if x != nil {
		return x.CommitError
	}
	return ""
}

func (x *UserCherryPickResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

func (x *UserCherryPickResponse) GetCreateTreeErrorCode() UserCherryPickResponse_CreateTreeError {
	if x != nil {
		return x.CreateTreeErrorCode
	}
	return UserCherryPickResponse_NONE
}

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

	// repository is the repository in which the revert shall be applied.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user to perform the revert as. This is used both for
	// authorization and as author/committer for the revert commit.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// commit iis the commit to revert.
	Commit *GitCommit `protobuf:"bytes,3,opt,name=commit,proto3" json:"commit,omitempty"`
	// branch_name is the name of the branch onto which the reverted commit shall
	// be committed.
	BranchName []byte `protobuf:"bytes,4,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	// message is the message to use for the revert commit.
	Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// start_branch_name is is used in case the branch_name branch does not
	// exist. In that case, it will be created from the start_branch_name.
	StartBranchName []byte `protobuf:"bytes,6,opt,name=start_branch_name,json=startBranchName,proto3" json:"start_branch_name,omitempty"`
	// start_repository is used in case the branch_name branch does not exist. In
	// that case, it will be created from start_branch_name in the
	// start_repository.
	StartRepository *Repository `protobuf:"bytes,7,opt,name=start_repository,json=startRepository,proto3" json:"start_repository,omitempty"`
	// dry_run  will compute the revert, but not update the target branch.
	DryRun bool `protobuf:"varint,8,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	// timestamp is the optional timestamp to use for the created cherry-picked
	// commit's committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserRevertRequest) ProtoMessage() {}

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

func (x *UserRevertRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserRevertRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserRevertRequest) GetCommit() *GitCommit {
	if x != nil {
		return x.Commit
	}
	return nil
}

func (x *UserRevertRequest) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserRevertRequest) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *UserRevertRequest) GetStartBranchName() []byte {
	if x != nil {
		return x.StartBranchName
	}
	return nil
}

func (x *UserRevertRequest) GetStartRepository() *Repository {
	if x != nil {
		return x.StartRepository
	}
	return nil
}

func (x *UserRevertRequest) GetDryRun() bool {
	if x != nil {
		return x.DryRun
	}
	return false
}

func (x *UserRevertRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// branch_update represents details about the updated branch.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	// create_tree_error contains the error message if creation of the tree
	// failed.
	CreateTreeError string `protobuf:"bytes,2,opt,name=create_tree_error,json=createTreeError,proto3" json:"create_tree_error,omitempty"`
	// commit_error contains the error message if updating the reference failed.
	CommitError string `protobuf:"bytes,3,opt,name=commit_error,json=commitError,proto3" json:"commit_error,omitempty"`
	// pre_receive_error contains the error message if the pre-receive hook
	// failed.
	PreReceiveError string `protobuf:"bytes,4,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
	// create_tree_error_code contains the error code if creation of the tree
	// failed.
	CreateTreeErrorCode UserRevertResponse_CreateTreeError `protobuf:"varint,5,opt,name=create_tree_error_code,json=createTreeErrorCode,proto3,enum=gitaly.UserRevertResponse_CreateTreeError" json:"create_tree_error_code,omitempty"`
}

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

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

func (*UserRevertResponse) ProtoMessage() {}

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

func (x *UserRevertResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

func (x *UserRevertResponse) GetCreateTreeError() string {
	if x != nil {
		return x.CreateTreeError
	}
	return ""
}

func (x *UserRevertResponse) GetCommitError() string {
	if x != nil {
		return x.CommitError
	}
	return ""
}

func (x *UserRevertResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

func (x *UserRevertResponse) GetCreateTreeErrorCode() UserRevertResponse_CreateTreeError {
	if x != nil {
		return x.CreateTreeErrorCode
	}
	return UserRevertResponse_NONE
}

// UserCommitFilesActionHeader contains the details of the action to be performed.
type UserCommitFilesActionHeader struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// action is the type of the action taken to build a commit. Not all fields are
	// used for all of the actions.
	Action UserCommitFilesActionHeader_ActionType `protobuf:"varint,1,opt,name=action,proto3,enum=gitaly.UserCommitFilesActionHeader_ActionType" json:"action,omitempty"`
	// file_path refers to the file or directory being modified. The meaning differs for each
	// action:
	//   1. CREATE: path of the file to create
	//   2. CREATE_DIR: path of the directory to create
	//   3. UPDATE: path of the file to update
	//   4. MOVE: the new path of the moved file
	//   5. DELETE: path of the file to delete
	//   6. CHMOD: path of the file to modify permissions for
	FilePath []byte `protobuf:"bytes,2,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
	// previous_path is used in MOVE action to specify the path of the file to move.
	PreviousPath []byte `protobuf:"bytes,3,opt,name=previous_path,json=previousPath,proto3" json:"previous_path,omitempty"`
	// base64_content indicates the content of the file is base64 encoded. The encoding
	// must be the standard base64 encoding defined in RFC 4648. Only used for CREATE and
	// UPDATE actions.
	Base64Content bool `protobuf:"varint,4,opt,name=base64_content,json=base64Content,proto3" json:"base64_content,omitempty"`
	// execute_filemode determines whether the file is created with execute permissions.
	// The field is only used in CREATE and CHMOD actions.
	ExecuteFilemode bool `protobuf:"varint,5,opt,name=execute_filemode,json=executeFilemode,proto3" json:"execute_filemode,omitempty"`
	// Move actions that change the file path, but not its content, should set
	// infer_content to true instead of populating the content field. Ignored for
	// other action types.
	InferContent bool `protobuf:"varint,6,opt,name=infer_content,json=inferContent,proto3" json:"infer_content,omitempty"`
}

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

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

func (*UserCommitFilesActionHeader) ProtoMessage() {}

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

func (x *UserCommitFilesActionHeader) GetAction() UserCommitFilesActionHeader_ActionType {
	if x != nil {
		return x.Action
	}
	return UserCommitFilesActionHeader_CREATE
}

func (x *UserCommitFilesActionHeader) GetFilePath() []byte {
	if x != nil {
		return x.FilePath
	}
	return nil
}

func (x *UserCommitFilesActionHeader) GetPreviousPath() []byte {
	if x != nil {
		return x.PreviousPath
	}
	return nil
}

func (x *UserCommitFilesActionHeader) GetBase64Content() bool {
	if x != nil {
		return x.Base64Content
	}
	return false
}

func (x *UserCommitFilesActionHeader) GetExecuteFilemode() bool {
	if x != nil {
		return x.ExecuteFilemode
	}
	return false
}

func (x *UserCommitFilesActionHeader) GetInferContent() bool {
	if x != nil {
		return x.InferContent
	}
	return false
}

// UserCommitFilesAction is the request message used to stream in the actions to build a commit.
type UserCommitFilesAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to UserCommitFilesActionPayload:
	//	*UserCommitFilesAction_Header
	//	*UserCommitFilesAction_Content
	UserCommitFilesActionPayload isUserCommitFilesAction_UserCommitFilesActionPayload `protobuf_oneof:"user_commit_files_action_payload"`
}

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

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

func (*UserCommitFilesAction) ProtoMessage() {}

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

func (m *UserCommitFilesAction) GetUserCommitFilesActionPayload() isUserCommitFilesAction_UserCommitFilesActionPayload {
	if m != nil {
		return m.UserCommitFilesActionPayload
	}
	return nil
}

func (x *UserCommitFilesAction) GetHeader() *UserCommitFilesActionHeader {
	if x, ok := x.GetUserCommitFilesActionPayload().(*UserCommitFilesAction_Header); ok {
		return x.Header
	}
	return nil
}

func (x *UserCommitFilesAction) GetContent() []byte {
	if x, ok := x.GetUserCommitFilesActionPayload().(*UserCommitFilesAction_Content); ok {
		return x.Content
	}
	return nil
}

type isUserCommitFilesAction_UserCommitFilesActionPayload interface {
	isUserCommitFilesAction_UserCommitFilesActionPayload()
}

type UserCommitFilesAction_Header struct {
	// header contains the details of action being performed. Header must be sent before the
	// content if content is used by the action.
	Header *UserCommitFilesActionHeader `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type UserCommitFilesAction_Content struct {
	// content is the content of the file streamed in one or more messages. Only used with CREATE
	// and UPDATE actions.
	Content []byte `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
}

func (*UserCommitFilesAction_Header) isUserCommitFilesAction_UserCommitFilesActionPayload() {}

func (*UserCommitFilesAction_Content) isUserCommitFilesAction_UserCommitFilesActionPayload() {}

// UserCommitFilesRequestHeader is the header of the UserCommitFiles that defines the commit details,
// parent and other information related to the call.
type UserCommitFilesRequestHeader struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// repository is the target repository where to apply the commit.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user peforming the call.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// branch_name is the name of the branch to point to the new commit. If start_sha and start_branch_name
	// are not defined, the commit of branch_name is used as the parent commit.
	BranchName []byte `protobuf:"bytes,3,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	// commit_message is the message to use in the commit.
	CommitMessage []byte `protobuf:"bytes,4,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"`
	// commit_author_name is the commit author's name. If not provided, the user's name is
	// used instead.
	CommitAuthorName []byte `protobuf:"bytes,5,opt,name=commit_author_name,json=commitAuthorName,proto3" json:"commit_author_name,omitempty"`
	// commit_author_email is the commit author's email. If not provided, the user's email is
	// used instead.
	CommitAuthorEmail []byte `protobuf:"bytes,6,opt,name=commit_author_email,json=commitAuthorEmail,proto3" json:"commit_author_email,omitempty"`
	// start_branch_name specifies the branch whose commit to use as the parent commit. Takes priority
	// over branch_name. Optional.
	StartBranchName []byte `protobuf:"bytes,7,opt,name=start_branch_name,json=startBranchName,proto3" json:"start_branch_name,omitempty"`
	// start_repository specifies which contains the parent commit. If not specified, repository itself
	// is used to look up the parent commit. Optional.
	StartRepository *Repository `protobuf:"bytes,8,opt,name=start_repository,json=startRepository,proto3" json:"start_repository,omitempty"`
	// force determines whether to force update the target branch specified by branch_name to
	// point to the new commit.
	Force bool `protobuf:"varint,9,opt,name=force,proto3" json:"force,omitempty"`
	// start_sha specifies the SHA of the commit to use as the parent of new commit. Takes priority
	// over start_branch_name and branc_name. Optional.
	StartSha string `protobuf:"bytes,10,opt,name=start_sha,json=startSha,proto3" json:"start_sha,omitempty"`
	// timestamp is the optional timestamp to use for the commits as author and
	// committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserCommitFilesRequestHeader) ProtoMessage() {}

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

func (x *UserCommitFilesRequestHeader) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetBranchName() []byte {
	if x != nil {
		return x.BranchName
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetCommitMessage() []byte {
	if x != nil {
		return x.CommitMessage
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetCommitAuthorName() []byte {
	if x != nil {
		return x.CommitAuthorName
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetCommitAuthorEmail() []byte {
	if x != nil {
		return x.CommitAuthorEmail
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetStartBranchName() []byte {
	if x != nil {
		return x.StartBranchName
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetStartRepository() *Repository {
	if x != nil {
		return x.StartRepository
	}
	return nil
}

func (x *UserCommitFilesRequestHeader) GetForce() bool {
	if x != nil {
		return x.Force
	}
	return false
}

func (x *UserCommitFilesRequestHeader) GetStartSha() string {
	if x != nil {
		return x.StartSha
	}
	return ""
}

func (x *UserCommitFilesRequestHeader) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

// UserCommitFiles is the request of UserCommitFiles.
type UserCommitFilesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to UserCommitFilesRequestPayload:
	//	*UserCommitFilesRequest_Header
	//	*UserCommitFilesRequest_Action
	UserCommitFilesRequestPayload isUserCommitFilesRequest_UserCommitFilesRequestPayload `protobuf_oneof:"user_commit_files_request_payload"`
}

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

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

func (*UserCommitFilesRequest) ProtoMessage() {}

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

func (m *UserCommitFilesRequest) GetUserCommitFilesRequestPayload() isUserCommitFilesRequest_UserCommitFilesRequestPayload {
	if m != nil {
		return m.UserCommitFilesRequestPayload
	}
	return nil
}

func (x *UserCommitFilesRequest) GetHeader() *UserCommitFilesRequestHeader {
	if x, ok := x.GetUserCommitFilesRequestPayload().(*UserCommitFilesRequest_Header); ok {
		return x.Header
	}
	return nil
}

func (x *UserCommitFilesRequest) GetAction() *UserCommitFilesAction {
	if x, ok := x.GetUserCommitFilesRequestPayload().(*UserCommitFilesRequest_Action); ok {
		return x.Action
	}
	return nil
}

type isUserCommitFilesRequest_UserCommitFilesRequestPayload interface {
	isUserCommitFilesRequest_UserCommitFilesRequestPayload()
}

type UserCommitFilesRequest_Header struct {
	// header defines the details of where to comnit, the details and which commit to use as the parent.
	// header must always be sent as the first request of the stream.
	Header *UserCommitFilesRequestHeader `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type UserCommitFilesRequest_Action struct {
	// action contains an action to build a commit. There can be multiple actions per stream.
	Action *UserCommitFilesAction `protobuf:"bytes,2,opt,name=action,proto3,oneof"`
}

func (*UserCommitFilesRequest_Header) isUserCommitFilesRequest_UserCommitFilesRequestPayload() {}

func (*UserCommitFilesRequest_Action) isUserCommitFilesRequest_UserCommitFilesRequestPayload() {}

// UserCommitFilesResponse is the response object of UserCommitFiles.
type UserCommitFilesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// branch_update contains the details of the commit and the branch update.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	// index_error is set to the error message when an invalid action was attempted, such as
	// trying to create a file that already existed.
	IndexError string `protobuf:"bytes,2,opt,name=index_error,json=indexError,proto3" json:"index_error,omitempty"`
	// pre_receive_error is set when the pre-receive hook errored.
	PreReceiveError string `protobuf:"bytes,3,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
}

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

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

func (*UserCommitFilesResponse) ProtoMessage() {}

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

func (x *UserCommitFilesResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

func (x *UserCommitFilesResponse) GetIndexError() string {
	if x != nil {
		return x.IndexError
	}
	return ""
}

func (x *UserCommitFilesResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

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

	// Types that are assignable to UserRebaseConfirmableRequestPayload:
	//	*UserRebaseConfirmableRequest_Header_
	//	*UserRebaseConfirmableRequest_Apply
	UserRebaseConfirmableRequestPayload isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload `protobuf_oneof:"user_rebase_confirmable_request_payload"`
}

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

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

func (*UserRebaseConfirmableRequest) ProtoMessage() {}

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

func (m *UserRebaseConfirmableRequest) GetUserRebaseConfirmableRequestPayload() isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload {
	if m != nil {
		return m.UserRebaseConfirmableRequestPayload
	}
	return nil
}

func (x *UserRebaseConfirmableRequest) GetHeader() *UserRebaseConfirmableRequest_Header {
	if x, ok := x.GetUserRebaseConfirmableRequestPayload().(*UserRebaseConfirmableRequest_Header_); ok {
		return x.Header
	}
	return nil
}

func (x *UserRebaseConfirmableRequest) GetApply() bool {
	if x, ok := x.GetUserRebaseConfirmableRequestPayload().(*UserRebaseConfirmableRequest_Apply); ok {
		return x.Apply
	}
	return false
}

type isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload interface {
	isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload()
}

type UserRebaseConfirmableRequest_Header_ struct {
	// For each request stream there must be first a request with a header
	// containing details about the rebase to perform.
	Header *UserRebaseConfirmableRequest_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type UserRebaseConfirmableRequest_Apply struct {
	// A second request must be made to confirm that the rebase should
	// be applied to the branch.
	Apply bool `protobuf:"varint,2,opt,name=apply,proto3,oneof"`
}

func (*UserRebaseConfirmableRequest_Header_) isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload() {
}

func (*UserRebaseConfirmableRequest_Apply) isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload() {
}

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

	// Types that are assignable to UserRebaseConfirmableResponsePayload:
	//	*UserRebaseConfirmableResponse_RebaseSha
	//	*UserRebaseConfirmableResponse_RebaseApplied
	UserRebaseConfirmableResponsePayload isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload `protobuf_oneof:"user_rebase_confirmable_response_payload"`
	// pre_receive_error contains an error message if the rebase failed because
	// of an error raised by hooks.
	PreReceiveError string `protobuf:"bytes,3,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
	// git_error contains an error message if git operations have failed.
	GitError string `protobuf:"bytes,4,opt,name=git_error,json=gitError,proto3" json:"git_error,omitempty"`
}

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

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

func (*UserRebaseConfirmableResponse) ProtoMessage() {}

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

func (m *UserRebaseConfirmableResponse) GetUserRebaseConfirmableResponsePayload() isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload {
	if m != nil {
		return m.UserRebaseConfirmableResponsePayload
	}
	return nil
}

func (x *UserRebaseConfirmableResponse) GetRebaseSha() string {
	if x, ok := x.GetUserRebaseConfirmableResponsePayload().(*UserRebaseConfirmableResponse_RebaseSha); ok {
		return x.RebaseSha
	}
	return ""
}

func (x *UserRebaseConfirmableResponse) GetRebaseApplied() bool {
	if x, ok := x.GetUserRebaseConfirmableResponsePayload().(*UserRebaseConfirmableResponse_RebaseApplied); ok {
		return x.RebaseApplied
	}
	return false
}

func (x *UserRebaseConfirmableResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

func (x *UserRebaseConfirmableResponse) GetGitError() string {
	if x != nil {
		return x.GitError
	}
	return ""
}

type isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload interface {
	isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload()
}

type UserRebaseConfirmableResponse_RebaseSha struct {
	// The first response will contain the rebase commit the branch will
	// be updated to. The caller can still abort the rebase.
	RebaseSha string `protobuf:"bytes,1,opt,name=rebase_sha,json=rebaseSha,proto3,oneof"`
}

type UserRebaseConfirmableResponse_RebaseApplied struct {
	// The second response confirms that the rebase has been applied to
	// the branch.
	RebaseApplied bool `protobuf:"varint,2,opt,name=rebase_applied,json=rebaseApplied,proto3,oneof"`
}

func (*UserRebaseConfirmableResponse_RebaseSha) isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload() {
}

func (*UserRebaseConfirmableResponse_RebaseApplied) isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload() {
}

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

	// repository is the repository into which the squashed commit shall be
	// written.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is used for authorization checks.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// start_sha is the object ID of the start commit of the range which shall be
	// squashed. Must be an ancestor of end_sha.
	StartSha string `protobuf:"bytes,5,opt,name=start_sha,json=startSha,proto3" json:"start_sha,omitempty"`
	// end_sha is the object ID of the end commit of the range which shall be
	// squashed.
	EndSha string `protobuf:"bytes,6,opt,name=end_sha,json=endSha,proto3" json:"end_sha,omitempty"`
	// author will be used as the author of the squashed commit.
	Author *User `protobuf:"bytes,7,opt,name=author,proto3" json:"author,omitempty"`
	// commit_message is the message to be used for the squashed commit.
	CommitMessage []byte `protobuf:"bytes,8,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"`
	// timestamp is the optional timestamp to use for the squashed commit as
	// committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*UserSquashRequest) ProtoMessage() {}

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

func (x *UserSquashRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserSquashRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserSquashRequest) GetStartSha() string {
	if x != nil {
		return x.StartSha
	}
	return ""
}

func (x *UserSquashRequest) GetEndSha() string {
	if x != nil {
		return x.EndSha
	}
	return ""
}

func (x *UserSquashRequest) GetAuthor() *User {
	if x != nil {
		return x.Author
	}
	return nil
}

func (x *UserSquashRequest) GetCommitMessage() []byte {
	if x != nil {
		return x.CommitMessage
	}
	return nil
}

func (x *UserSquashRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// squash_sha is the object ID of the squashed commit.
	SquashSha string `protobuf:"bytes,1,opt,name=squash_sha,json=squashSha,proto3" json:"squash_sha,omitempty"`
	GitError  string `protobuf:"bytes,3,opt,name=git_error,json=gitError,proto3" json:"git_error,omitempty"`
}

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

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

func (*UserSquashResponse) ProtoMessage() {}

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

func (x *UserSquashResponse) GetSquashSha() string {
	if x != nil {
		return x.SquashSha
	}
	return ""
}

func (x *UserSquashResponse) GetGitError() string {
	if x != nil {
		return x.GitError
	}
	return ""
}

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

	// Types that are assignable to Error:
	//	*UserRebaseConfirmableError_RebaseConflict
	//	*UserRebaseConfirmableError_AccessCheck
	Error isUserRebaseConfirmableError_Error `protobuf_oneof:"error"`
}

func (x *UserRebaseConfirmableError) Reset() {
	*x = UserRebaseConfirmableError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserRebaseConfirmableError) ProtoMessage() {}

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

// Deprecated: Use UserRebaseConfirmableError.ProtoReflect.Descriptor instead.
func (*UserRebaseConfirmableError) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{31}
}

func (m *UserRebaseConfirmableError) GetError() isUserRebaseConfirmableError_Error {
	if m != nil {
		return m.Error
	}
	return nil
}

func (x *UserRebaseConfirmableError) GetRebaseConflict() *MergeConflictError {
	if x, ok := x.GetError().(*UserRebaseConfirmableError_RebaseConflict); ok {
		return x.RebaseConflict
	}
	return nil
}

func (x *UserRebaseConfirmableError) GetAccessCheck() *AccessCheckError {
	if x, ok := x.GetError().(*UserRebaseConfirmableError_AccessCheck); ok {
		return x.AccessCheck
	}
	return nil
}

type isUserRebaseConfirmableError_Error interface {
	isUserRebaseConfirmableError_Error()
}

type UserRebaseConfirmableError_RebaseConflict struct {
	// RebaseConflict is returned in case rebasing commits on top of the start
	// commit fails with a merge conflict.
	RebaseConflict *MergeConflictError `protobuf:"bytes,1,opt,name=rebase_conflict,json=rebaseConflict,proto3,oneof"`
}

type UserRebaseConfirmableError_AccessCheck struct {
	// AccessCheckError is returned in case GitLab's `/internal/allowed` endpoint rejected
	// the change.
	AccessCheck *AccessCheckError `protobuf:"bytes,2,opt,name=access_check,json=accessCheck,proto3,oneof"`
}

func (*UserRebaseConfirmableError_RebaseConflict) isUserRebaseConfirmableError_Error() {}

func (*UserRebaseConfirmableError_AccessCheck) isUserRebaseConfirmableError_Error() {}

// UserSquashError is an error that may be returned when the UserSquash RPC
// fails.
type UserSquashError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Error:
	//	*UserSquashError_ResolveRevision
	//	*UserSquashError_RebaseConflict
	Error isUserSquashError_Error `protobuf_oneof:"error"`
}

func (x *UserSquashError) Reset() {
	*x = UserSquashError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserSquashError) ProtoMessage() {}

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

// Deprecated: Use UserSquashError.ProtoReflect.Descriptor instead.
func (*UserSquashError) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{32}
}

func (m *UserSquashError) GetError() isUserSquashError_Error {
	if m != nil {
		return m.Error
	}
	return nil
}

func (x *UserSquashError) GetResolveRevision() *ResolveRevisionError {
	if x, ok := x.GetError().(*UserSquashError_ResolveRevision); ok {
		return x.ResolveRevision
	}
	return nil
}

func (x *UserSquashError) GetRebaseConflict() *MergeConflictError {
	if x, ok := x.GetError().(*UserSquashError_RebaseConflict); ok {
		return x.RebaseConflict
	}
	return nil
}

type isUserSquashError_Error interface {
	isUserSquashError_Error()
}

type UserSquashError_ResolveRevision struct {
	// ResolveRevision is returned in case resolving either the start or end
	// revision has failed.
	ResolveRevision *ResolveRevisionError `protobuf:"bytes,1,opt,name=resolve_revision,json=resolveRevision,proto3,oneof"`
}

type UserSquashError_RebaseConflict struct {
	// RebaseConflict is returned in case rebasing commits on top of the start
	// commit fails with a merge conflict.
	RebaseConflict *MergeConflictError `protobuf:"bytes,2,opt,name=rebase_conflict,json=rebaseConflict,proto3,oneof"`
}

func (*UserSquashError_ResolveRevision) isUserSquashError_Error() {}

func (*UserSquashError_RebaseConflict) isUserSquashError_Error() {}

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

	// Types that are assignable to UserApplyPatchRequestPayload:
	//	*UserApplyPatchRequest_Header_
	//	*UserApplyPatchRequest_Patches
	UserApplyPatchRequestPayload isUserApplyPatchRequest_UserApplyPatchRequestPayload `protobuf_oneof:"user_apply_patch_request_payload"`
}

func (x *UserApplyPatchRequest) Reset() {
	*x = UserApplyPatchRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserApplyPatchRequest) ProtoMessage() {}

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

// Deprecated: Use UserApplyPatchRequest.ProtoReflect.Descriptor instead.
func (*UserApplyPatchRequest) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{33}
}

func (m *UserApplyPatchRequest) GetUserApplyPatchRequestPayload() isUserApplyPatchRequest_UserApplyPatchRequestPayload {
	if m != nil {
		return m.UserApplyPatchRequestPayload
	}
	return nil
}

func (x *UserApplyPatchRequest) GetHeader() *UserApplyPatchRequest_Header {
	if x, ok := x.GetUserApplyPatchRequestPayload().(*UserApplyPatchRequest_Header_); ok {
		return x.Header
	}
	return nil
}

func (x *UserApplyPatchRequest) GetPatches() []byte {
	if x, ok := x.GetUserApplyPatchRequestPayload().(*UserApplyPatchRequest_Patches); ok {
		return x.Patches
	}
	return nil
}

type isUserApplyPatchRequest_UserApplyPatchRequestPayload interface {
	isUserApplyPatchRequest_UserApplyPatchRequestPayload()
}

type UserApplyPatchRequest_Header_ struct {
	// header must be sent as the first message and contains information about
	// how to apply the patches.
	Header *UserApplyPatchRequest_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type UserApplyPatchRequest_Patches struct {
	// patches contains the patch data.
	Patches []byte `protobuf:"bytes,2,opt,name=patches,proto3,oneof"`
}

func (*UserApplyPatchRequest_Header_) isUserApplyPatchRequest_UserApplyPatchRequestPayload() {}

func (*UserApplyPatchRequest_Patches) isUserApplyPatchRequest_UserApplyPatchRequestPayload() {}

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

	// branch_update contains information about the updated branch.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
}

func (x *UserApplyPatchResponse) Reset() {
	*x = UserApplyPatchResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserApplyPatchResponse) ProtoMessage() {}

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

// Deprecated: Use UserApplyPatchResponse.ProtoReflect.Descriptor instead.
func (*UserApplyPatchResponse) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{34}
}

func (x *UserApplyPatchResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

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

	// repository is the repository in which the submodule shall be updated.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is used both for authorization and as author/committer of the
	// resulting commit.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// commit_sha is the object ID the submodule shall be updated to.
	CommitSha string `protobuf:"bytes,3,opt,name=commit_sha,json=commitSha,proto3" json:"commit_sha,omitempty"`
	// branch is the branch which shall be updated. This is the unqualified name
	// of the branch, it must not have a "refs/heads/" prefix.
	Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
	// submodule is the path to the submodule which shall be updated.
	Submodule []byte `protobuf:"bytes,5,opt,name=submodule,proto3" json:"submodule,omitempty"`
	// commit_message is the message updating the submodule.
	CommitMessage []byte `protobuf:"bytes,6,opt,name=commit_message,json=commitMessage,proto3" json:"commit_message,omitempty"`
	// timestamp is the optional timestamp to use for the commit updating the
	// submodule as committer date. If it's not set, the current time will be
	// used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *UserUpdateSubmoduleRequest) Reset() {
	*x = UserUpdateSubmoduleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserUpdateSubmoduleRequest) ProtoMessage() {}

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

// Deprecated: Use UserUpdateSubmoduleRequest.ProtoReflect.Descriptor instead.
func (*UserUpdateSubmoduleRequest) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{35}
}

func (x *UserUpdateSubmoduleRequest) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserUpdateSubmoduleRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserUpdateSubmoduleRequest) GetCommitSha() string {
	if x != nil {
		return x.CommitSha
	}
	return ""
}

func (x *UserUpdateSubmoduleRequest) GetBranch() []byte {
	if x != nil {
		return x.Branch
	}
	return nil
}

func (x *UserUpdateSubmoduleRequest) GetSubmodule() []byte {
	if x != nil {
		return x.Submodule
	}
	return nil
}

func (x *UserUpdateSubmoduleRequest) GetCommitMessage() []byte {
	if x != nil {
		return x.CommitMessage
	}
	return nil
}

func (x *UserUpdateSubmoduleRequest) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

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

	// branch_update contains information about the updated branch.
	BranchUpdate *OperationBranchUpdate `protobuf:"bytes,1,opt,name=branch_update,json=branchUpdate,proto3" json:"branch_update,omitempty"`
	// pre_receive_error contains an error message if the pre-receive hook
	// rejects the update.
	PreReceiveError string `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"`
	// commit_error contains an error message if committing the update fails.
	CommitError string `protobuf:"bytes,4,opt,name=commit_error,json=commitError,proto3" json:"commit_error,omitempty"`
}

func (x *UserUpdateSubmoduleResponse) Reset() {
	*x = UserUpdateSubmoduleResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserUpdateSubmoduleResponse) ProtoMessage() {}

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

// Deprecated: Use UserUpdateSubmoduleResponse.ProtoReflect.Descriptor instead.
func (*UserUpdateSubmoduleResponse) Descriptor() ([]byte, []int) {
	return file_operations_proto_rawDescGZIP(), []int{36}
}

func (x *UserUpdateSubmoduleResponse) GetBranchUpdate() *OperationBranchUpdate {
	if x != nil {
		return x.BranchUpdate
	}
	return nil
}

func (x *UserUpdateSubmoduleResponse) GetPreReceiveError() string {
	if x != nil {
		return x.PreReceiveError
	}
	return ""
}

func (x *UserUpdateSubmoduleResponse) GetCommitError() string {
	if x != nil {
		return x.CommitError
	}
	return ""
}

// Header contains information to compute the rebase and must be sent as
// first message.
type UserRebaseConfirmableRequest_Header struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// repository is the repository in which the rebase will be computed and
	// applied.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is the user to compute the rebase as. It will be used as
	// "committer" of rebased commits.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// RebaseId does nothing anymore.
	//
	// Deprecated: Do not use.
	RebaseId string `protobuf:"bytes,3,opt,name=rebase_id,json=rebaseId,proto3" json:"rebase_id,omitempty"`
	// branch is the branch onto which the rebase shall happen.
	Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
	// branch_sha is the expected object ID which branch currently points to.
	// This is used as a safety guard to avoid races when branch has been
	// updated meanwhile.
	BranchSha string `protobuf:"bytes,5,opt,name=branch_sha,json=branchSha,proto3" json:"branch_sha,omitempty"`
	// remote_repository is the repository which contains the branch which
	// shall be rebased onto the local branch.
	RemoteRepository *Repository `protobuf:"bytes,6,opt,name=remote_repository,json=remoteRepository,proto3" json:"remote_repository,omitempty"`
	// remote_branch contains the branch name which shall re rebased onto the
	// local branch.
	RemoteBranch []byte `protobuf:"bytes,7,opt,name=remote_branch,json=remoteBranch,proto3" json:"remote_branch,omitempty"`
	// git_push_options contain options which shall be passed to the git hooks
	// when the local branch gets updated.
	GitPushOptions []string `protobuf:"bytes,8,rep,name=git_push_options,json=gitPushOptions,proto3" json:"git_push_options,omitempty"`
	// timestamp is the optional timestamp to use for the rebased commits as
	// committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *UserRebaseConfirmableRequest_Header) Reset() {
	*x = UserRebaseConfirmableRequest_Header{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserRebaseConfirmableRequest_Header) ProtoMessage() {}

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

func (x *UserRebaseConfirmableRequest_Header) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserRebaseConfirmableRequest_Header) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

// Deprecated: Do not use.
func (x *UserRebaseConfirmableRequest_Header) GetRebaseId() string {
	if x != nil {
		return x.RebaseId
	}
	return ""
}

func (x *UserRebaseConfirmableRequest_Header) GetBranch() []byte {
	if x != nil {
		return x.Branch
	}
	return nil
}

func (x *UserRebaseConfirmableRequest_Header) GetBranchSha() string {
	if x != nil {
		return x.BranchSha
	}
	return ""
}

func (x *UserRebaseConfirmableRequest_Header) GetRemoteRepository() *Repository {
	if x != nil {
		return x.RemoteRepository
	}
	return nil
}

func (x *UserRebaseConfirmableRequest_Header) GetRemoteBranch() []byte {
	if x != nil {
		return x.RemoteBranch
	}
	return nil
}

func (x *UserRebaseConfirmableRequest_Header) GetGitPushOptions() []string {
	if x != nil {
		return x.GitPushOptions
	}
	return nil
}

func (x *UserRebaseConfirmableRequest_Header) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

// Header contains information about how to apply the patches.
type UserApplyPatchRequest_Header struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// repository is the repository to which the patches shall be applied to.
	Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	// user is used for authentication.
	User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"`
	// target_branch is the branch onto which the patches shall be applied.
	TargetBranch []byte `protobuf:"bytes,3,opt,name=target_branch,json=targetBranch,proto3" json:"target_branch,omitempty"`
	// timestamp is the optional timestamp to use for the squashed commit as
	// committer date. If it's not set, the current time will be used.
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *UserApplyPatchRequest_Header) Reset() {
	*x = UserApplyPatchRequest_Header{}
	if protoimpl.UnsafeEnabled {
		mi := &file_operations_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserApplyPatchRequest_Header) ProtoMessage() {}

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

func (x *UserApplyPatchRequest_Header) GetRepository() *Repository {
	if x != nil {
		return x.Repository
	}
	return nil
}

func (x *UserApplyPatchRequest_Header) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *UserApplyPatchRequest_Header) GetTargetBranch() []byte {
	if x != nil {
		return x.TargetBranch
	}
	return nil
}

func (x *UserApplyPatchRequest_Header) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

var File_operations_proto protoreflect.FileDescriptor

var file_operations_proto_rawDesc = []byte{
	0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x06, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x1a, 0x0a, 0x6c, 0x69, 0x6e, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72,
	0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a,
	0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73,
	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x6e, 0x0a,
	0x18, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x62, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72,
	0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xc6, 0x01,
	0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
	0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x77, 0x72, 0x65, 0x76,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x72, 0x65, 0x76, 0x12, 0x16,
	0x0a, 0x06, 0x6f, 0x6c, 0x64, 0x72, 0x65, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
	0x6f, 0x6c, 0x64, 0x72, 0x65, 0x76, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
	0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x96,
	0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22,
	0x8d, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61,
	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
	0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
	0x43, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x22, 0x8a, 0x02, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a,
	0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72,
	0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x22, 0x7a, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
	0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x74, 0x61,
	0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x54, 0x61, 0x67, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74,
	0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72,
	0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x93, 0x02,
	0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x07, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a,
	0x05, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x70,
	0x70, 0x6c, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67,
	0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0d,
	0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x12, 0x2e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
	0x3d, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x41,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
	0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x49,
	0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
	0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x22, 0xf0, 0x02, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65,
	0x54, 0x6f, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a,
	0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12,
	0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73,
	0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x66, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
	0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x6c,
	0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 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, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x65, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72,
	0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x11,
	0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x70, 0x72, 0x65,
	0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7e, 0x0a, 0x15,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62,
	0x72, 0x61, 0x6e, 0x63, 0x68, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0xa6, 0x01, 0x0a,
	0x13, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6,
	0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20,
	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
	0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62,
	0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46,
	0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42,
	0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
	0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x97,
	0x03, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63,
	0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69,
	0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12,
	0x1f, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
	0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x6f, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x38,
	0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 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, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xf2, 0x02, 0x0a, 0x16, 0x55, 0x73, 0x65,
	0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x12, 0x63, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x65,
	0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f,
	0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x01, 0x12,
	0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02, 0x22, 0x93, 0x03,
	0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c,
	0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a,
	0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
	0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62,
	0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52,
	0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x22, 0xea, 0x02, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65,
	0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a,
	0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a,
	0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63,
	0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63,
	0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65, 0x65,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65,
	0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0f, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x65, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x08, 0x0a,
	0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59,
	0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02,
	0x22, 0xf5, 0x02, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46,
	0x69, 0x6c, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x46, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c,
	0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75,
	0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72,
	0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61,
	0x73, 0x65, 0x36, 0x34, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c,
	0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d,
	0x69, 0x6e, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x22, 0x55, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
	0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55,
	0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x4f, 0x56, 0x45, 0x10,
	0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x09, 0x0a,
	0x05, 0x43, 0x48, 0x4d, 0x4f, 0x44, 0x10, 0x05, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x55, 0x73, 0x65,
	0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x22, 0x0a,
	0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x6c,
	0x65, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
	0x64, 0x22, 0xf8, 0x03, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
	0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01,
	0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1f,
	0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x61,
	0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x45,
	0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x3d, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0f,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
	0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73,
	0x68, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53,
	0x68, 0x61, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
	0x0b, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb6, 0x01, 0x0a,
	0x16, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x42, 0x23, 0x0a, 0x21, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
	0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61,
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x22, 0xb1, 0x04, 0x0a, 0x1c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62,
	0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x61, 0x70,
	0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x61, 0x70, 0x70,
	0x6c, 0x79, 0x1a, 0x86, 0x03, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a,
	0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x09, 0x72, 0x65, 0x62,
	0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01,
	0x52, 0x08, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x73, 0x68, 0x61,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x53, 0x68,
	0x61, 0x12, 0x3f, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x52, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
	0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x62, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74,
	0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x69, 0x74, 0x5f, 0x70,
	0x75, 0x73, 0x68, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x0e, 0x67, 0x69, 0x74, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09,
	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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x29, 0x0a, 0x27, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70,
	0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xde, 0x01, 0x0a, 0x1d, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x72, 0x65, 0x62, 0x61,
	0x73, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09,
	0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x53, 0x68, 0x61, 0x12, 0x27, 0x0a, 0x0e, 0x72, 0x65, 0x62,
	0x61, 0x73, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
	0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
	0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1b,
	0x0a, 0x09, 0x67, 0x69, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x67, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x2a, 0x0a, 0x28, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
	0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xc3, 0x02, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72,
	0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a,
	0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x53, 0x68, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68,
	0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x12,
	0x24, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x61,
	0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 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, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04,
	0x10, 0x05, 0x52, 0x09, 0x73, 0x71, 0x75, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x22, 0x69, 0x0a,
	0x12, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x71, 0x75, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x68,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x71, 0x75, 0x61, 0x73, 0x68, 0x53,
	0x68, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x69, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4a,
	0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xab, 0x01, 0x0a, 0x1a, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62,
	0x6c, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x62, 0x61, 0x73,
	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e,
	0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x3d,
	0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x41, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x07, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53,
	0x71, 0x75, 0x61, 0x73, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x10, 0x72, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x76,
	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x6c, 0x69, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65,
	0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x42, 0x07, 0x0a, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdd, 0x02, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x1a, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
	0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x1a, 0xc3, 0x01, 0x0a, 0x06,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04,
	0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
	0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73,
	0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 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, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x42, 0x22, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f,
	0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61,
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x5c, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x22, 0xae, 0x02, 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
	0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01,
	0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1d,
	0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a,
	0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62,
	0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75,
	0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64,
	0x75, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 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, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x62, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x11, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x32, 0xed, 0x0a, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72,
	0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97,
	0x28, 0x02, 0x08, 0x01, 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
	0x02, 0x08, 0x01, 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e,
	0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
	0x08, 0x01, 0x12, 0x54, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x54, 0x61, 0x67, 0x12, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x54, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x57,
	0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66,
	0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65,
	0x72, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72,
	0x67, 0x65, 0x54, 0x6f, 0x52, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x5e, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x42, 0x72, 0x61,
	0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
	0x02, 0x08, 0x01, 0x28, 0x01, 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x46,
	0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x46, 0x46, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x73,
	0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79,
	0x50, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50,
	0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
	0x02, 0x08, 0x01, 0x12, 0x5c, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28,
	0x01, 0x12, 0x70, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74,
	0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
	0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28,
	0x01, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72,
	0x74, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x65, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67,
	0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01,
	0x12, 0x4b, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x12, 0x19,
	0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61,
	0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x59, 0x0a,
	0x0e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12,
	0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e,
	0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c,
	0x79, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06,
	0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x28, 0x01, 0x12, 0x66, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12,
	0x22, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01,
	0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
	0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
	0x2f, 0x76, 0x31, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69,
	0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_operations_proto_rawDescOnce sync.Once
	file_operations_proto_rawDescData = file_operations_proto_rawDesc
)

func file_operations_proto_rawDescGZIP() []byte {
	file_operations_proto_rawDescOnce.Do(func() {
		file_operations_proto_rawDescData = protoimpl.X.CompressGZIP(file_operations_proto_rawDescData)
	})
	return file_operations_proto_rawDescData
}

var file_operations_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_operations_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
var file_operations_proto_goTypes = []interface{}{
	(UserCherryPickResponse_CreateTreeError)(0), // 0: gitaly.UserCherryPickResponse.CreateTreeError
	(UserRevertResponse_CreateTreeError)(0),     // 1: gitaly.UserRevertResponse.CreateTreeError
	(UserCommitFilesActionHeader_ActionType)(0), // 2: gitaly.UserCommitFilesActionHeader.ActionType
	(*UserCreateBranchRequest)(nil),             // 3: gitaly.UserCreateBranchRequest
	(*UserCreateBranchResponse)(nil),            // 4: gitaly.UserCreateBranchResponse
	(*UserUpdateBranchRequest)(nil),             // 5: gitaly.UserUpdateBranchRequest
	(*UserUpdateBranchResponse)(nil),            // 6: gitaly.UserUpdateBranchResponse
	(*UserDeleteBranchRequest)(nil),             // 7: gitaly.UserDeleteBranchRequest
	(*UserDeleteBranchResponse)(nil),            // 8: gitaly.UserDeleteBranchResponse
	(*UserDeleteTagRequest)(nil),                // 9: gitaly.UserDeleteTagRequest
	(*UserDeleteTagResponse)(nil),               // 10: gitaly.UserDeleteTagResponse
	(*UserCreateTagRequest)(nil),                // 11: gitaly.UserCreateTagRequest
	(*UserCreateTagResponse)(nil),               // 12: gitaly.UserCreateTagResponse
	(*UserMergeBranchRequest)(nil),              // 13: gitaly.UserMergeBranchRequest
	(*UserMergeBranchResponse)(nil),             // 14: gitaly.UserMergeBranchResponse
	(*UserMergeBranchError)(nil),                // 15: gitaly.UserMergeBranchError
	(*UserMergeToRefRequest)(nil),               // 16: gitaly.UserMergeToRefRequest
	(*UserMergeToRefResponse)(nil),              // 17: gitaly.UserMergeToRefResponse
	(*OperationBranchUpdate)(nil),               // 18: gitaly.OperationBranchUpdate
	(*UserFFBranchRequest)(nil),                 // 19: gitaly.UserFFBranchRequest
	(*UserFFBranchResponse)(nil),                // 20: gitaly.UserFFBranchResponse
	(*UserCherryPickRequest)(nil),               // 21: gitaly.UserCherryPickRequest
	(*UserCherryPickResponse)(nil),              // 22: gitaly.UserCherryPickResponse
	(*UserRevertRequest)(nil),                   // 23: gitaly.UserRevertRequest
	(*UserRevertResponse)(nil),                  // 24: gitaly.UserRevertResponse
	(*UserCommitFilesActionHeader)(nil),         // 25: gitaly.UserCommitFilesActionHeader
	(*UserCommitFilesAction)(nil),               // 26: gitaly.UserCommitFilesAction
	(*UserCommitFilesRequestHeader)(nil),        // 27: gitaly.UserCommitFilesRequestHeader
	(*UserCommitFilesRequest)(nil),              // 28: gitaly.UserCommitFilesRequest
	(*UserCommitFilesResponse)(nil),             // 29: gitaly.UserCommitFilesResponse
	(*UserRebaseConfirmableRequest)(nil),        // 30: gitaly.UserRebaseConfirmableRequest
	(*UserRebaseConfirmableResponse)(nil),       // 31: gitaly.UserRebaseConfirmableResponse
	(*UserSquashRequest)(nil),                   // 32: gitaly.UserSquashRequest
	(*UserSquashResponse)(nil),                  // 33: gitaly.UserSquashResponse
	(*UserRebaseConfirmableError)(nil),          // 34: gitaly.UserRebaseConfirmableError
	(*UserSquashError)(nil),                     // 35: gitaly.UserSquashError
	(*UserApplyPatchRequest)(nil),               // 36: gitaly.UserApplyPatchRequest
	(*UserApplyPatchResponse)(nil),              // 37: gitaly.UserApplyPatchResponse
	(*UserUpdateSubmoduleRequest)(nil),          // 38: gitaly.UserUpdateSubmoduleRequest
	(*UserUpdateSubmoduleResponse)(nil),         // 39: gitaly.UserUpdateSubmoduleResponse
	(*UserRebaseConfirmableRequest_Header)(nil), // 40: gitaly.UserRebaseConfirmableRequest.Header
	(*UserApplyPatchRequest_Header)(nil),        // 41: gitaly.UserApplyPatchRequest.Header
	(*Repository)(nil),                          // 42: gitaly.Repository
	(*User)(nil),                                // 43: gitaly.User
	(*Branch)(nil),                              // 44: gitaly.Branch
	(*timestamppb.Timestamp)(nil),               // 45: google.protobuf.Timestamp
	(*Tag)(nil),                                 // 46: gitaly.Tag
	(*AccessCheckError)(nil),                    // 47: gitaly.AccessCheckError
	(*ReferenceUpdateError)(nil),                // 48: gitaly.ReferenceUpdateError
	(*GitCommit)(nil),                           // 49: gitaly.GitCommit
	(*MergeConflictError)(nil),                  // 50: gitaly.MergeConflictError
	(*ResolveRevisionError)(nil),                // 51: gitaly.ResolveRevisionError
}
var file_operations_proto_depIdxs = []int32{
	42, // 0: gitaly.UserCreateBranchRequest.repository:type_name -> gitaly.Repository
	43, // 1: gitaly.UserCreateBranchRequest.user:type_name -> gitaly.User
	44, // 2: gitaly.UserCreateBranchResponse.branch:type_name -> gitaly.Branch
	42, // 3: gitaly.UserUpdateBranchRequest.repository:type_name -> gitaly.Repository
	43, // 4: gitaly.UserUpdateBranchRequest.user:type_name -> gitaly.User
	42, // 5: gitaly.UserDeleteBranchRequest.repository:type_name -> gitaly.Repository
	43, // 6: gitaly.UserDeleteBranchRequest.user:type_name -> gitaly.User
	42, // 7: gitaly.UserDeleteTagRequest.repository:type_name -> gitaly.Repository
	43, // 8: gitaly.UserDeleteTagRequest.user:type_name -> gitaly.User
	42, // 9: gitaly.UserCreateTagRequest.repository:type_name -> gitaly.Repository
	43, // 10: gitaly.UserCreateTagRequest.user:type_name -> gitaly.User
	45, // 11: gitaly.UserCreateTagRequest.timestamp:type_name -> google.protobuf.Timestamp
	46, // 12: gitaly.UserCreateTagResponse.tag:type_name -> gitaly.Tag
	42, // 13: gitaly.UserMergeBranchRequest.repository:type_name -> gitaly.Repository
	43, // 14: gitaly.UserMergeBranchRequest.user:type_name -> gitaly.User
	45, // 15: gitaly.UserMergeBranchRequest.timestamp:type_name -> google.protobuf.Timestamp
	18, // 16: gitaly.UserMergeBranchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	47, // 17: gitaly.UserMergeBranchError.access_check:type_name -> gitaly.AccessCheckError
	48, // 18: gitaly.UserMergeBranchError.reference_update:type_name -> gitaly.ReferenceUpdateError
	42, // 19: gitaly.UserMergeToRefRequest.repository:type_name -> gitaly.Repository
	43, // 20: gitaly.UserMergeToRefRequest.user:type_name -> gitaly.User
	45, // 21: gitaly.UserMergeToRefRequest.timestamp:type_name -> google.protobuf.Timestamp
	42, // 22: gitaly.UserFFBranchRequest.repository:type_name -> gitaly.Repository
	43, // 23: gitaly.UserFFBranchRequest.user:type_name -> gitaly.User
	18, // 24: gitaly.UserFFBranchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	42, // 25: gitaly.UserCherryPickRequest.repository:type_name -> gitaly.Repository
	43, // 26: gitaly.UserCherryPickRequest.user:type_name -> gitaly.User
	49, // 27: gitaly.UserCherryPickRequest.commit:type_name -> gitaly.GitCommit
	42, // 28: gitaly.UserCherryPickRequest.start_repository:type_name -> gitaly.Repository
	45, // 29: gitaly.UserCherryPickRequest.timestamp:type_name -> google.protobuf.Timestamp
	18, // 30: gitaly.UserCherryPickResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	0,  // 31: gitaly.UserCherryPickResponse.create_tree_error_code:type_name -> gitaly.UserCherryPickResponse.CreateTreeError
	42, // 32: gitaly.UserRevertRequest.repository:type_name -> gitaly.Repository
	43, // 33: gitaly.UserRevertRequest.user:type_name -> gitaly.User
	49, // 34: gitaly.UserRevertRequest.commit:type_name -> gitaly.GitCommit
	42, // 35: gitaly.UserRevertRequest.start_repository:type_name -> gitaly.Repository
	45, // 36: gitaly.UserRevertRequest.timestamp:type_name -> google.protobuf.Timestamp
	18, // 37: gitaly.UserRevertResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	1,  // 38: gitaly.UserRevertResponse.create_tree_error_code:type_name -> gitaly.UserRevertResponse.CreateTreeError
	2,  // 39: gitaly.UserCommitFilesActionHeader.action:type_name -> gitaly.UserCommitFilesActionHeader.ActionType
	25, // 40: gitaly.UserCommitFilesAction.header:type_name -> gitaly.UserCommitFilesActionHeader
	42, // 41: gitaly.UserCommitFilesRequestHeader.repository:type_name -> gitaly.Repository
	43, // 42: gitaly.UserCommitFilesRequestHeader.user:type_name -> gitaly.User
	42, // 43: gitaly.UserCommitFilesRequestHeader.start_repository:type_name -> gitaly.Repository
	45, // 44: gitaly.UserCommitFilesRequestHeader.timestamp:type_name -> google.protobuf.Timestamp
	27, // 45: gitaly.UserCommitFilesRequest.header:type_name -> gitaly.UserCommitFilesRequestHeader
	26, // 46: gitaly.UserCommitFilesRequest.action:type_name -> gitaly.UserCommitFilesAction
	18, // 47: gitaly.UserCommitFilesResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	40, // 48: gitaly.UserRebaseConfirmableRequest.header:type_name -> gitaly.UserRebaseConfirmableRequest.Header
	42, // 49: gitaly.UserSquashRequest.repository:type_name -> gitaly.Repository
	43, // 50: gitaly.UserSquashRequest.user:type_name -> gitaly.User
	43, // 51: gitaly.UserSquashRequest.author:type_name -> gitaly.User
	45, // 52: gitaly.UserSquashRequest.timestamp:type_name -> google.protobuf.Timestamp
	50, // 53: gitaly.UserRebaseConfirmableError.rebase_conflict:type_name -> gitaly.MergeConflictError
	47, // 54: gitaly.UserRebaseConfirmableError.access_check:type_name -> gitaly.AccessCheckError
	51, // 55: gitaly.UserSquashError.resolve_revision:type_name -> gitaly.ResolveRevisionError
	50, // 56: gitaly.UserSquashError.rebase_conflict:type_name -> gitaly.MergeConflictError
	41, // 57: gitaly.UserApplyPatchRequest.header:type_name -> gitaly.UserApplyPatchRequest.Header
	18, // 58: gitaly.UserApplyPatchResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	42, // 59: gitaly.UserUpdateSubmoduleRequest.repository:type_name -> gitaly.Repository
	43, // 60: gitaly.UserUpdateSubmoduleRequest.user:type_name -> gitaly.User
	45, // 61: gitaly.UserUpdateSubmoduleRequest.timestamp:type_name -> google.protobuf.Timestamp
	18, // 62: gitaly.UserUpdateSubmoduleResponse.branch_update:type_name -> gitaly.OperationBranchUpdate
	42, // 63: gitaly.UserRebaseConfirmableRequest.Header.repository:type_name -> gitaly.Repository
	43, // 64: gitaly.UserRebaseConfirmableRequest.Header.user:type_name -> gitaly.User
	42, // 65: gitaly.UserRebaseConfirmableRequest.Header.remote_repository:type_name -> gitaly.Repository
	45, // 66: gitaly.UserRebaseConfirmableRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
	42, // 67: gitaly.UserApplyPatchRequest.Header.repository:type_name -> gitaly.Repository
	43, // 68: gitaly.UserApplyPatchRequest.Header.user:type_name -> gitaly.User
	45, // 69: gitaly.UserApplyPatchRequest.Header.timestamp:type_name -> google.protobuf.Timestamp
	3,  // 70: gitaly.OperationService.UserCreateBranch:input_type -> gitaly.UserCreateBranchRequest
	5,  // 71: gitaly.OperationService.UserUpdateBranch:input_type -> gitaly.UserUpdateBranchRequest
	7,  // 72: gitaly.OperationService.UserDeleteBranch:input_type -> gitaly.UserDeleteBranchRequest
	11, // 73: gitaly.OperationService.UserCreateTag:input_type -> gitaly.UserCreateTagRequest
	9,  // 74: gitaly.OperationService.UserDeleteTag:input_type -> gitaly.UserDeleteTagRequest
	16, // 75: gitaly.OperationService.UserMergeToRef:input_type -> gitaly.UserMergeToRefRequest
	13, // 76: gitaly.OperationService.UserMergeBranch:input_type -> gitaly.UserMergeBranchRequest
	19, // 77: gitaly.OperationService.UserFFBranch:input_type -> gitaly.UserFFBranchRequest
	21, // 78: gitaly.OperationService.UserCherryPick:input_type -> gitaly.UserCherryPickRequest
	28, // 79: gitaly.OperationService.UserCommitFiles:input_type -> gitaly.UserCommitFilesRequest
	30, // 80: gitaly.OperationService.UserRebaseConfirmable:input_type -> gitaly.UserRebaseConfirmableRequest
	23, // 81: gitaly.OperationService.UserRevert:input_type -> gitaly.UserRevertRequest
	32, // 82: gitaly.OperationService.UserSquash:input_type -> gitaly.UserSquashRequest
	36, // 83: gitaly.OperationService.UserApplyPatch:input_type -> gitaly.UserApplyPatchRequest
	38, // 84: gitaly.OperationService.UserUpdateSubmodule:input_type -> gitaly.UserUpdateSubmoduleRequest
	4,  // 85: gitaly.OperationService.UserCreateBranch:output_type -> gitaly.UserCreateBranchResponse
	6,  // 86: gitaly.OperationService.UserUpdateBranch:output_type -> gitaly.UserUpdateBranchResponse
	8,  // 87: gitaly.OperationService.UserDeleteBranch:output_type -> gitaly.UserDeleteBranchResponse
	12, // 88: gitaly.OperationService.UserCreateTag:output_type -> gitaly.UserCreateTagResponse
	10, // 89: gitaly.OperationService.UserDeleteTag:output_type -> gitaly.UserDeleteTagResponse
	17, // 90: gitaly.OperationService.UserMergeToRef:output_type -> gitaly.UserMergeToRefResponse
	14, // 91: gitaly.OperationService.UserMergeBranch:output_type -> gitaly.UserMergeBranchResponse
	20, // 92: gitaly.OperationService.UserFFBranch:output_type -> gitaly.UserFFBranchResponse
	22, // 93: gitaly.OperationService.UserCherryPick:output_type -> gitaly.UserCherryPickResponse
	29, // 94: gitaly.OperationService.UserCommitFiles:output_type -> gitaly.UserCommitFilesResponse
	31, // 95: gitaly.OperationService.UserRebaseConfirmable:output_type -> gitaly.UserRebaseConfirmableResponse
	24, // 96: gitaly.OperationService.UserRevert:output_type -> gitaly.UserRevertResponse
	33, // 97: gitaly.OperationService.UserSquash:output_type -> gitaly.UserSquashResponse
	37, // 98: gitaly.OperationService.UserApplyPatch:output_type -> gitaly.UserApplyPatchResponse
	39, // 99: gitaly.OperationService.UserUpdateSubmodule:output_type -> gitaly.UserUpdateSubmoduleResponse
	85, // [85:100] is the sub-list for method output_type
	70, // [70:85] is the sub-list for method input_type
	70, // [70:70] is the sub-list for extension type_name
	70, // [70:70] is the sub-list for extension extendee
	0,  // [0:70] is the sub-list for field type_name
}

func init() { file_operations_proto_init() }
func file_operations_proto_init() {
	if File_operations_proto != nil {
		return
	}
	file_lint_proto_init()
	file_shared_proto_init()
	file_errors_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_operations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCreateBranchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCreateBranchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserUpdateBranchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserUpdateBranchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDeleteBranchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDeleteBranchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDeleteTagRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDeleteTagResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCreateTagRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCreateTagResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserMergeBranchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserMergeBranchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserMergeBranchError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserMergeToRefRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserMergeToRefResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OperationBranchUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserFFBranchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserFFBranchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCherryPickRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCherryPickResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRevertRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRevertResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCommitFilesActionHeader); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCommitFilesAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCommitFilesRequestHeader); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCommitFilesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserCommitFilesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRebaseConfirmableRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRebaseConfirmableResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserSquashRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserSquashResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRebaseConfirmableError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserSquashError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserApplyPatchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserApplyPatchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserUpdateSubmoduleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserUpdateSubmoduleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRebaseConfirmableRequest_Header); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_operations_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserApplyPatchRequest_Header); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_operations_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*UserMergeBranchError_AccessCheck)(nil),
		(*UserMergeBranchError_ReferenceUpdate)(nil),
	}
	file_operations_proto_msgTypes[23].OneofWrappers = []interface{}{
		(*UserCommitFilesAction_Header)(nil),
		(*UserCommitFilesAction_Content)(nil),
	}
	file_operations_proto_msgTypes[25].OneofWrappers = []interface{}{
		(*UserCommitFilesRequest_Header)(nil),
		(*UserCommitFilesRequest_Action)(nil),
	}
	file_operations_proto_msgTypes[27].OneofWrappers = []interface{}{
		(*UserRebaseConfirmableRequest_Header_)(nil),
		(*UserRebaseConfirmableRequest_Apply)(nil),
	}
	file_operations_proto_msgTypes[28].OneofWrappers = []interface{}{
		(*UserRebaseConfirmableResponse_RebaseSha)(nil),
		(*UserRebaseConfirmableResponse_RebaseApplied)(nil),
	}
	file_operations_proto_msgTypes[31].OneofWrappers = []interface{}{
		(*UserRebaseConfirmableError_RebaseConflict)(nil),
		(*UserRebaseConfirmableError_AccessCheck)(nil),
	}
	file_operations_proto_msgTypes[32].OneofWrappers = []interface{}{
		(*UserSquashError_ResolveRevision)(nil),
		(*UserSquashError_RebaseConflict)(nil),
	}
	file_operations_proto_msgTypes[33].OneofWrappers = []interface{}{
		(*UserApplyPatchRequest_Header_)(nil),
		(*UserApplyPatchRequest_Patches)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_operations_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   39,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_operations_proto_goTypes,
		DependencyIndexes: file_operations_proto_depIdxs,
		EnumInfos:         file_operations_proto_enumTypes,
		MessageInfos:      file_operations_proto_msgTypes,
	}.Build()
	File_operations_proto = out.File
	file_operations_proto_rawDesc = nil
	file_operations_proto_goTypes = nil
	file_operations_proto_depIdxs = nil
}
