// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.35.2
// 	protoc        v3.11.4
// source: github.com/moby/buildkit/solver/pb/ops.proto

// Package pb provides the protobuf definition of LLB: low-level builder instruction.
// LLB is DAG-structured; Op represents a vertex, and Definition represents a graph.

package pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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

type NetMode int32

const (
	NetMode_UNSET NetMode = 0 // sandbox
	NetMode_HOST  NetMode = 1
	NetMode_NONE  NetMode = 2
)

// Enum value maps for NetMode.
var (
	NetMode_name = map[int32]string{
		0: "UNSET",
		1: "HOST",
		2: "NONE",
	}
	NetMode_value = map[string]int32{
		"UNSET": 0,
		"HOST":  1,
		"NONE":  2,
	}
)

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

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

func (NetMode) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[0].Descriptor()
}

func (NetMode) Type() protoreflect.EnumType {
	return &file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[0]
}

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

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

type SecurityMode int32

const (
	SecurityMode_SANDBOX  SecurityMode = 0
	SecurityMode_INSECURE SecurityMode = 1 // privileged mode
)

// Enum value maps for SecurityMode.
var (
	SecurityMode_name = map[int32]string{
		0: "SANDBOX",
		1: "INSECURE",
	}
	SecurityMode_value = map[string]int32{
		"SANDBOX":  0,
		"INSECURE": 1,
	}
)

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

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

func (SecurityMode) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[1].Descriptor()
}

func (SecurityMode) Type() protoreflect.EnumType {
	return &file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[1]
}

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

// Deprecated: Use SecurityMode.Descriptor instead.
func (SecurityMode) EnumDescriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{1}
}

// MountType defines a type of a mount from a supported set
type MountType int32

const (
	MountType_BIND   MountType = 0
	MountType_SECRET MountType = 1
	MountType_SSH    MountType = 2
	MountType_CACHE  MountType = 3
	MountType_TMPFS  MountType = 4
)

// Enum value maps for MountType.
var (
	MountType_name = map[int32]string{
		0: "BIND",
		1: "SECRET",
		2: "SSH",
		3: "CACHE",
		4: "TMPFS",
	}
	MountType_value = map[string]int32{
		"BIND":   0,
		"SECRET": 1,
		"SSH":    2,
		"CACHE":  3,
		"TMPFS":  4,
	}
)

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

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

func (MountType) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[2].Descriptor()
}

func (MountType) Type() protoreflect.EnumType {
	return &file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[2]
}

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

// Deprecated: Use MountType.Descriptor instead.
func (MountType) EnumDescriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{2}
}

// MountContentCache ...
type MountContentCache int32

const (
	MountContentCache_DEFAULT MountContentCache = 0
	MountContentCache_ON      MountContentCache = 1
	MountContentCache_OFF     MountContentCache = 2
)

// Enum value maps for MountContentCache.
var (
	MountContentCache_name = map[int32]string{
		0: "DEFAULT",
		1: "ON",
		2: "OFF",
	}
	MountContentCache_value = map[string]int32{
		"DEFAULT": 0,
		"ON":      1,
		"OFF":     2,
	}
)

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

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

func (MountContentCache) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[3].Descriptor()
}

func (MountContentCache) Type() protoreflect.EnumType {
	return &file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[3]
}

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

// Deprecated: Use MountContentCache.Descriptor instead.
func (MountContentCache) EnumDescriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{3}
}

// CacheSharingOpt defines different sharing modes for cache mount
type CacheSharingOpt int32

const (
	// SHARED cache mount can be used concurrently by multiple writers
	CacheSharingOpt_SHARED CacheSharingOpt = 0
	// PRIVATE creates a new mount if there are multiple writers
	CacheSharingOpt_PRIVATE CacheSharingOpt = 1
	// LOCKED pauses second writer until first one releases the mount
	CacheSharingOpt_LOCKED CacheSharingOpt = 2
)

// Enum value maps for CacheSharingOpt.
var (
	CacheSharingOpt_name = map[int32]string{
		0: "SHARED",
		1: "PRIVATE",
		2: "LOCKED",
	}
	CacheSharingOpt_value = map[string]int32{
		"SHARED":  0,
		"PRIVATE": 1,
		"LOCKED":  2,
	}
)

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

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

func (CacheSharingOpt) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[4].Descriptor()
}

func (CacheSharingOpt) Type() protoreflect.EnumType {
	return &file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes[4]
}

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

// Deprecated: Use CacheSharingOpt.Descriptor instead.
func (CacheSharingOpt) EnumDescriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{4}
}

// Op represents a vertex of the LLB DAG.
type Op struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// changes to this structure must be represented in json.go.
	// inputs is a set of input edges.
	Inputs []*Input `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Op_Exec
	//	*Op_Source
	//	*Op_File
	//	*Op_Build
	//	*Op_Merge
	//	*Op_Diff
	Op          isOp_Op            `protobuf_oneof:"op"`
	Platform    *Platform          `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform,omitempty"`
	Constraints *WorkerConstraints `protobuf:"bytes,11,opt,name=constraints,proto3" json:"constraints,omitempty"`
}

func (x *Op) Reset() {
	*x = Op{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Op) ProtoMessage() {}

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

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

func (x *Op) GetInputs() []*Input {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (m *Op) GetOp() isOp_Op {
	if m != nil {
		return m.Op
	}
	return nil
}

func (x *Op) GetExec() *ExecOp {
	if x, ok := x.GetOp().(*Op_Exec); ok {
		return x.Exec
	}
	return nil
}

func (x *Op) GetSource() *SourceOp {
	if x, ok := x.GetOp().(*Op_Source); ok {
		return x.Source
	}
	return nil
}

func (x *Op) GetFile() *FileOp {
	if x, ok := x.GetOp().(*Op_File); ok {
		return x.File
	}
	return nil
}

func (x *Op) GetBuild() *BuildOp {
	if x, ok := x.GetOp().(*Op_Build); ok {
		return x.Build
	}
	return nil
}

func (x *Op) GetMerge() *MergeOp {
	if x, ok := x.GetOp().(*Op_Merge); ok {
		return x.Merge
	}
	return nil
}

func (x *Op) GetDiff() *DiffOp {
	if x, ok := x.GetOp().(*Op_Diff); ok {
		return x.Diff
	}
	return nil
}

func (x *Op) GetPlatform() *Platform {
	if x != nil {
		return x.Platform
	}
	return nil
}

func (x *Op) GetConstraints() *WorkerConstraints {
	if x != nil {
		return x.Constraints
	}
	return nil
}

type isOp_Op interface {
	isOp_Op()
}

type Op_Exec struct {
	Exec *ExecOp `protobuf:"bytes,2,opt,name=exec,proto3,oneof"`
}

type Op_Source struct {
	Source *SourceOp `protobuf:"bytes,3,opt,name=source,proto3,oneof"`
}

type Op_File struct {
	File *FileOp `protobuf:"bytes,4,opt,name=file,proto3,oneof"`
}

type Op_Build struct {
	Build *BuildOp `protobuf:"bytes,5,opt,name=build,proto3,oneof"`
}

type Op_Merge struct {
	Merge *MergeOp `protobuf:"bytes,6,opt,name=merge,proto3,oneof"`
}

type Op_Diff struct {
	Diff *DiffOp `protobuf:"bytes,7,opt,name=diff,proto3,oneof"`
}

func (*Op_Exec) isOp_Op() {}

func (*Op_Source) isOp_Op() {}

func (*Op_File) isOp_Op() {}

func (*Op_Build) isOp_Op() {}

func (*Op_Merge) isOp_Op() {}

func (*Op_Diff) isOp_Op() {}

// Platform is github.com/opencontainers/image-spec/specs-go/v1.Platform
type Platform struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Architecture string   `protobuf:"bytes,1,opt,name=Architecture,proto3" json:"Architecture,omitempty"`
	OS           string   `protobuf:"bytes,2,opt,name=OS,proto3" json:"OS,omitempty"`
	Variant      string   `protobuf:"bytes,3,opt,name=Variant,proto3" json:"Variant,omitempty"`
	OSVersion    string   `protobuf:"bytes,4,opt,name=OSVersion,proto3" json:"OSVersion,omitempty"`
	OSFeatures   []string `protobuf:"bytes,5,rep,name=OSFeatures,proto3" json:"OSFeatures,omitempty"` // unused
}

func (x *Platform) Reset() {
	*x = Platform{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Platform) ProtoMessage() {}

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

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

func (x *Platform) GetArchitecture() string {
	if x != nil {
		return x.Architecture
	}
	return ""
}

func (x *Platform) GetOS() string {
	if x != nil {
		return x.OS
	}
	return ""
}

func (x *Platform) GetVariant() string {
	if x != nil {
		return x.Variant
	}
	return ""
}

func (x *Platform) GetOSVersion() string {
	if x != nil {
		return x.OSVersion
	}
	return ""
}

func (x *Platform) GetOSFeatures() []string {
	if x != nil {
		return x.OSFeatures
	}
	return nil
}

// Input represents an input edge for an Op.
type Input struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// digest of the marshaled input Op
	Digest string `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
	// output index of the input Op
	Index int64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *Input) Reset() {
	*x = Input{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Input) ProtoMessage() {}

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

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

func (x *Input) GetDigest() string {
	if x != nil {
		return x.Digest
	}
	return ""
}

func (x *Input) GetIndex() int64 {
	if x != nil {
		return x.Index
	}
	return 0
}

// ExecOp executes a command in a container.
type ExecOp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Meta      *Meta        `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"`
	Mounts    []*Mount     `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts,omitempty"`
	Network   NetMode      `protobuf:"varint,3,opt,name=network,proto3,enum=pb.NetMode" json:"network,omitempty"`
	Security  SecurityMode `protobuf:"varint,4,opt,name=security,proto3,enum=pb.SecurityMode" json:"security,omitempty"`
	Secretenv []*SecretEnv `protobuf:"bytes,5,rep,name=secretenv,proto3" json:"secretenv,omitempty"`
}

func (x *ExecOp) Reset() {
	*x = ExecOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ExecOp) ProtoMessage() {}

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

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

func (x *ExecOp) GetMeta() *Meta {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *ExecOp) GetMounts() []*Mount {
	if x != nil {
		return x.Mounts
	}
	return nil
}

func (x *ExecOp) GetNetwork() NetMode {
	if x != nil {
		return x.Network
	}
	return NetMode_UNSET
}

func (x *ExecOp) GetSecurity() SecurityMode {
	if x != nil {
		return x.Security
	}
	return SecurityMode_SANDBOX
}

func (x *ExecOp) GetSecretenv() []*SecretEnv {
	if x != nil {
		return x.Secretenv
	}
	return nil
}

// Meta is a set of arguments for ExecOp.
// Meta is unrelated to LLB metadata.
// FIXME: rename (ExecContext? ExecArgs?)
type Meta struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Args                      []string  `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"`
	Env                       []string  `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"`
	Cwd                       string    `protobuf:"bytes,3,opt,name=cwd,proto3" json:"cwd,omitempty"`
	User                      string    `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
	ProxyEnv                  *ProxyEnv `protobuf:"bytes,5,opt,name=proxy_env,json=proxyEnv,proto3" json:"proxy_env,omitempty"`
	ExtraHosts                []*HostIP `protobuf:"bytes,6,rep,name=extraHosts,proto3" json:"extraHosts,omitempty"`
	Hostname                  string    `protobuf:"bytes,7,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Ulimit                    []*Ulimit `protobuf:"bytes,9,rep,name=ulimit,proto3" json:"ulimit,omitempty"`
	CgroupParent              string    `protobuf:"bytes,10,opt,name=cgroupParent,proto3" json:"cgroupParent,omitempty"`
	RemoveMountStubsRecursive bool      `protobuf:"varint,11,opt,name=removeMountStubsRecursive,proto3" json:"removeMountStubsRecursive,omitempty"`
	ValidExitCodes            []int32   `protobuf:"varint,12,rep,packed,name=validExitCodes,proto3" json:"validExitCodes,omitempty"`
}

func (x *Meta) Reset() {
	*x = Meta{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Meta) ProtoMessage() {}

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

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

func (x *Meta) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

func (x *Meta) GetEnv() []string {
	if x != nil {
		return x.Env
	}
	return nil
}

func (x *Meta) GetCwd() string {
	if x != nil {
		return x.Cwd
	}
	return ""
}

func (x *Meta) GetUser() string {
	if x != nil {
		return x.User
	}
	return ""
}

func (x *Meta) GetProxyEnv() *ProxyEnv {
	if x != nil {
		return x.ProxyEnv
	}
	return nil
}

func (x *Meta) GetExtraHosts() []*HostIP {
	if x != nil {
		return x.ExtraHosts
	}
	return nil
}

func (x *Meta) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *Meta) GetUlimit() []*Ulimit {
	if x != nil {
		return x.Ulimit
	}
	return nil
}

func (x *Meta) GetCgroupParent() string {
	if x != nil {
		return x.CgroupParent
	}
	return ""
}

func (x *Meta) GetRemoveMountStubsRecursive() bool {
	if x != nil {
		return x.RemoveMountStubsRecursive
	}
	return false
}

func (x *Meta) GetValidExitCodes() []int32 {
	if x != nil {
		return x.ValidExitCodes
	}
	return nil
}

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

	Host string `protobuf:"bytes,1,opt,name=Host,proto3" json:"Host,omitempty"`
	IP   string `protobuf:"bytes,2,opt,name=IP,proto3" json:"IP,omitempty"`
}

func (x *HostIP) Reset() {
	*x = HostIP{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*HostIP) ProtoMessage() {}

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

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

func (x *HostIP) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *HostIP) GetIP() string {
	if x != nil {
		return x.IP
	}
	return ""
}

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

	Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
	Soft int64  `protobuf:"varint,2,opt,name=Soft,proto3" json:"Soft,omitempty"`
	Hard int64  `protobuf:"varint,3,opt,name=Hard,proto3" json:"Hard,omitempty"`
}

func (x *Ulimit) Reset() {
	*x = Ulimit{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Ulimit) ProtoMessage() {}

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

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

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

func (x *Ulimit) GetSoft() int64 {
	if x != nil {
		return x.Soft
	}
	return 0
}

func (x *Ulimit) GetHard() int64 {
	if x != nil {
		return x.Hard
	}
	return 0
}

// SecretEnv is an environment variable that is backed by a secret.
type SecretEnv struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID       string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name     string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Optional bool   `protobuf:"varint,3,opt,name=optional,proto3" json:"optional,omitempty"`
}

func (x *SecretEnv) Reset() {
	*x = SecretEnv{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SecretEnv) ProtoMessage() {}

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

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

func (x *SecretEnv) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

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

func (x *SecretEnv) GetOptional() bool {
	if x != nil {
		return x.Optional
	}
	return false
}

// Mount specifies how to mount an input Op as a filesystem.
type Mount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Input        int64             `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
	Selector     string            `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
	Dest         string            `protobuf:"bytes,3,opt,name=dest,proto3" json:"dest,omitempty"`
	Output       int64             `protobuf:"varint,4,opt,name=output,proto3" json:"output,omitempty"`
	Readonly     bool              `protobuf:"varint,5,opt,name=readonly,proto3" json:"readonly,omitempty"`
	MountType    MountType         `protobuf:"varint,6,opt,name=mountType,proto3,enum=pb.MountType" json:"mountType,omitempty"`
	TmpfsOpt     *TmpfsOpt         `protobuf:"bytes,19,opt,name=TmpfsOpt,proto3" json:"TmpfsOpt,omitempty"`
	CacheOpt     *CacheOpt         `protobuf:"bytes,20,opt,name=cacheOpt,proto3" json:"cacheOpt,omitempty"`
	SecretOpt    *SecretOpt        `protobuf:"bytes,21,opt,name=secretOpt,proto3" json:"secretOpt,omitempty"`
	SSHOpt       *SSHOpt           `protobuf:"bytes,22,opt,name=SSHOpt,proto3" json:"SSHOpt,omitempty"`
	ResultID     string            `protobuf:"bytes,23,opt,name=resultID,proto3" json:"resultID,omitempty"`
	ContentCache MountContentCache `protobuf:"varint,24,opt,name=contentCache,proto3,enum=pb.MountContentCache" json:"contentCache,omitempty"`
}

func (x *Mount) Reset() {
	*x = Mount{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Mount) ProtoMessage() {}

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

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

func (x *Mount) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

func (x *Mount) GetSelector() string {
	if x != nil {
		return x.Selector
	}
	return ""
}

func (x *Mount) GetDest() string {
	if x != nil {
		return x.Dest
	}
	return ""
}

func (x *Mount) GetOutput() int64 {
	if x != nil {
		return x.Output
	}
	return 0
}

func (x *Mount) GetReadonly() bool {
	if x != nil {
		return x.Readonly
	}
	return false
}

func (x *Mount) GetMountType() MountType {
	if x != nil {
		return x.MountType
	}
	return MountType_BIND
}

func (x *Mount) GetTmpfsOpt() *TmpfsOpt {
	if x != nil {
		return x.TmpfsOpt
	}
	return nil
}

func (x *Mount) GetCacheOpt() *CacheOpt {
	if x != nil {
		return x.CacheOpt
	}
	return nil
}

func (x *Mount) GetSecretOpt() *SecretOpt {
	if x != nil {
		return x.SecretOpt
	}
	return nil
}

func (x *Mount) GetSSHOpt() *SSHOpt {
	if x != nil {
		return x.SSHOpt
	}
	return nil
}

func (x *Mount) GetResultID() string {
	if x != nil {
		return x.ResultID
	}
	return ""
}

func (x *Mount) GetContentCache() MountContentCache {
	if x != nil {
		return x.ContentCache
	}
	return MountContentCache_DEFAULT
}

// TmpfsOpt defines options describing tpmfs mounts
type TmpfsOpt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Specify an upper limit on the size of the filesystem.
	Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
}

func (x *TmpfsOpt) Reset() {
	*x = TmpfsOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TmpfsOpt) ProtoMessage() {}

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

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

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

// CacheOpt defines options specific to cache mounts
type CacheOpt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID is an optional namespace for the mount
	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	// Sharing is the sharing mode for the mount
	Sharing CacheSharingOpt `protobuf:"varint,2,opt,name=sharing,proto3,enum=pb.CacheSharingOpt" json:"sharing,omitempty"`
}

func (x *CacheOpt) Reset() {
	*x = CacheOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CacheOpt) ProtoMessage() {}

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

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

func (x *CacheOpt) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

func (x *CacheOpt) GetSharing() CacheSharingOpt {
	if x != nil {
		return x.Sharing
	}
	return CacheSharingOpt_SHARED
}

// SecretOpt defines options describing secret mounts
type SecretOpt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID of secret. Used for quering the value.
	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	// UID of secret file
	Uid uint32 `protobuf:"varint,2,opt,name=uid,proto3" json:"uid,omitempty"`
	// GID of secret file
	Gid uint32 `protobuf:"varint,3,opt,name=gid,proto3" json:"gid,omitempty"`
	// Mode is the filesystem mode of secret file
	Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
	// Optional defines if secret value is required. Error is produced
	// if value is not found and optional is false.
	Optional bool `protobuf:"varint,5,opt,name=optional,proto3" json:"optional,omitempty"`
}

func (x *SecretOpt) Reset() {
	*x = SecretOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SecretOpt) ProtoMessage() {}

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

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

func (x *SecretOpt) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

func (x *SecretOpt) GetUid() uint32 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *SecretOpt) GetGid() uint32 {
	if x != nil {
		return x.Gid
	}
	return 0
}

func (x *SecretOpt) GetMode() uint32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (x *SecretOpt) GetOptional() bool {
	if x != nil {
		return x.Optional
	}
	return false
}

// SSHOpt defines options describing ssh mounts
type SSHOpt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ID of exposed ssh rule. Used for quering the value.
	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	// UID of agent socket
	Uid uint32 `protobuf:"varint,2,opt,name=uid,proto3" json:"uid,omitempty"`
	// GID of agent socket
	Gid uint32 `protobuf:"varint,3,opt,name=gid,proto3" json:"gid,omitempty"`
	// Mode is the filesystem mode of agent socket
	Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
	// Optional defines if ssh socket is required. Error is produced
	// if client does not expose ssh.
	Optional bool `protobuf:"varint,5,opt,name=optional,proto3" json:"optional,omitempty"`
}

func (x *SSHOpt) Reset() {
	*x = SSHOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SSHOpt) ProtoMessage() {}

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

// Deprecated: Use SSHOpt.ProtoReflect.Descriptor instead.
func (*SSHOpt) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{12}
}

func (x *SSHOpt) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

func (x *SSHOpt) GetUid() uint32 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *SSHOpt) GetGid() uint32 {
	if x != nil {
		return x.Gid
	}
	return 0
}

func (x *SSHOpt) GetMode() uint32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (x *SSHOpt) GetOptional() bool {
	if x != nil {
		return x.Optional
	}
	return false
}

// SourceOp specifies a source such as build contexts and images.
type SourceOp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// TODO: use source type or any type instead of URL protocol.
	// identifier e.g. local://, docker-image://, git://, https://...
	Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"`
	// attrs are defined in attr.go
	Attrs map[string]string `protobuf:"bytes,2,rep,name=attrs,proto3" json:"attrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *SourceOp) Reset() {
	*x = SourceOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SourceOp) ProtoMessage() {}

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

// Deprecated: Use SourceOp.ProtoReflect.Descriptor instead.
func (*SourceOp) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{13}
}

func (x *SourceOp) GetIdentifier() string {
	if x != nil {
		return x.Identifier
	}
	return ""
}

func (x *SourceOp) GetAttrs() map[string]string {
	if x != nil {
		return x.Attrs
	}
	return nil
}

// BuildOp is used for nested build invocation.
// BuildOp is experimental and can break without backwards compatibility
type BuildOp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Builder int64                  `protobuf:"varint,1,opt,name=builder,proto3" json:"builder,omitempty"`
	Inputs  map[string]*BuildInput `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Def     *Definition            `protobuf:"bytes,3,opt,name=def,proto3" json:"def,omitempty"`
	Attrs   map[string]string      `protobuf:"bytes,4,rep,name=attrs,proto3" json:"attrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // outputs
}

func (x *BuildOp) Reset() {
	*x = BuildOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BuildOp) ProtoMessage() {}

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

// Deprecated: Use BuildOp.ProtoReflect.Descriptor instead.
func (*BuildOp) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{14}
}

func (x *BuildOp) GetBuilder() int64 {
	if x != nil {
		return x.Builder
	}
	return 0
}

func (x *BuildOp) GetInputs() map[string]*BuildInput {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (x *BuildOp) GetDef() *Definition {
	if x != nil {
		return x.Def
	}
	return nil
}

func (x *BuildOp) GetAttrs() map[string]string {
	if x != nil {
		return x.Attrs
	}
	return nil
}

// BuildInput is used for BuildOp.
type BuildInput struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Input int64 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
}

func (x *BuildInput) Reset() {
	*x = BuildInput{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BuildInput) ProtoMessage() {}

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

// Deprecated: Use BuildInput.ProtoReflect.Descriptor instead.
func (*BuildInput) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{15}
}

func (x *BuildInput) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

// OpMetadata is a per-vertex metadata entry, which can be defined for arbitrary Op vertex and overridable on the run time.
type OpMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ignore_cache specifies to ignore the cache for this Op.
	IgnoreCache bool `protobuf:"varint,1,opt,name=ignore_cache,json=ignoreCache,proto3" json:"ignore_cache,omitempty"`
	// Description can be used for keeping any text fields that builder doesn't parse
	Description map[string]string `protobuf:"bytes,2,rep,name=description,proto3" json:"description,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// index 3 reserved for WorkerConstraint in previous versions
	// WorkerConstraint worker_constraint = 3;
	ExportCache   *ExportCache    `protobuf:"bytes,4,opt,name=export_cache,json=exportCache,proto3" json:"export_cache,omitempty"`
	Caps          map[string]bool `protobuf:"bytes,5,rep,name=caps,proto3" json:"caps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	ProgressGroup *ProgressGroup  `protobuf:"bytes,6,opt,name=progress_group,json=progressGroup,proto3" json:"progress_group,omitempty"`
}

func (x *OpMetadata) Reset() {
	*x = OpMetadata{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*OpMetadata) ProtoMessage() {}

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

// Deprecated: Use OpMetadata.ProtoReflect.Descriptor instead.
func (*OpMetadata) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{16}
}

func (x *OpMetadata) GetIgnoreCache() bool {
	if x != nil {
		return x.IgnoreCache
	}
	return false
}

func (x *OpMetadata) GetDescription() map[string]string {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *OpMetadata) GetExportCache() *ExportCache {
	if x != nil {
		return x.ExportCache
	}
	return nil
}

func (x *OpMetadata) GetCaps() map[string]bool {
	if x != nil {
		return x.Caps
	}
	return nil
}

func (x *OpMetadata) GetProgressGroup() *ProgressGroup {
	if x != nil {
		return x.ProgressGroup
	}
	return nil
}

// Source is a source mapping description for a file
type Source struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Locations map[string]*Locations `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Infos     []*SourceInfo         `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"`
}

func (x *Source) Reset() {
	*x = Source{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Source) ProtoMessage() {}

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

// Deprecated: Use Source.ProtoReflect.Descriptor instead.
func (*Source) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{17}
}

func (x *Source) GetLocations() map[string]*Locations {
	if x != nil {
		return x.Locations
	}
	return nil
}

func (x *Source) GetInfos() []*SourceInfo {
	if x != nil {
		return x.Infos
	}
	return nil
}

// Locations is a list of ranges with a index to its source map.
type Locations struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Locations []*Location `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"`
}

func (x *Locations) Reset() {
	*x = Locations{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Locations) ProtoMessage() {}

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

// Deprecated: Use Locations.ProtoReflect.Descriptor instead.
func (*Locations) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{18}
}

func (x *Locations) GetLocations() []*Location {
	if x != nil {
		return x.Locations
	}
	return nil
}

// Source info contains the shared metadata of a source mapping
type SourceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filename   string      `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	Data       []byte      `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Definition *Definition `protobuf:"bytes,3,opt,name=definition,proto3" json:"definition,omitempty"`
	Language   string      `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *SourceInfo) Reset() {
	*x = SourceInfo{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SourceInfo) ProtoMessage() {}

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

// Deprecated: Use SourceInfo.ProtoReflect.Descriptor instead.
func (*SourceInfo) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{19}
}

func (x *SourceInfo) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *SourceInfo) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *SourceInfo) GetDefinition() *Definition {
	if x != nil {
		return x.Definition
	}
	return nil
}

func (x *SourceInfo) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

// Location defines list of areas in to source file
type Location struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourceIndex int32    `protobuf:"varint,1,opt,name=sourceIndex,proto3" json:"sourceIndex,omitempty"`
	Ranges      []*Range `protobuf:"bytes,2,rep,name=ranges,proto3" json:"ranges,omitempty"`
}

func (x *Location) Reset() {
	*x = Location{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Location) ProtoMessage() {}

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

// Deprecated: Use Location.ProtoReflect.Descriptor instead.
func (*Location) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{20}
}

func (x *Location) GetSourceIndex() int32 {
	if x != nil {
		return x.SourceIndex
	}
	return 0
}

func (x *Location) GetRanges() []*Range {
	if x != nil {
		return x.Ranges
	}
	return nil
}

// Range is an area in the source file
type Range struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Start *Position `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
	End   *Position `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
}

func (x *Range) Reset() {
	*x = Range{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Range) ProtoMessage() {}

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

// Deprecated: Use Range.ProtoReflect.Descriptor instead.
func (*Range) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{21}
}

func (x *Range) GetStart() *Position {
	if x != nil {
		return x.Start
	}
	return nil
}

func (x *Range) GetEnd() *Position {
	if x != nil {
		return x.End
	}
	return nil
}

// Position is single location in a source file
type Position struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Line      int32 `protobuf:"varint,1,opt,name=line,proto3" json:"line,omitempty"`
	Character int32 `protobuf:"varint,2,opt,name=character,proto3" json:"character,omitempty"`
}

func (x *Position) Reset() {
	*x = Position{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Position) ProtoMessage() {}

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

// Deprecated: Use Position.ProtoReflect.Descriptor instead.
func (*Position) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{22}
}

func (x *Position) GetLine() int32 {
	if x != nil {
		return x.Line
	}
	return 0
}

func (x *Position) GetCharacter() int32 {
	if x != nil {
		return x.Character
	}
	return 0
}

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

	Value bool `protobuf:"varint,1,opt,name=Value,proto3" json:"Value,omitempty"`
}

func (x *ExportCache) Reset() {
	*x = ExportCache{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ExportCache) ProtoMessage() {}

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

// Deprecated: Use ExportCache.ProtoReflect.Descriptor instead.
func (*ExportCache) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{23}
}

func (x *ExportCache) GetValue() bool {
	if x != nil {
		return x.Value
	}
	return false
}

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

	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Weak bool   `protobuf:"varint,3,opt,name=weak,proto3" json:"weak,omitempty"`
}

func (x *ProgressGroup) Reset() {
	*x = ProgressGroup{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProgressGroup) ProtoMessage() {}

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

// Deprecated: Use ProgressGroup.ProtoReflect.Descriptor instead.
func (*ProgressGroup) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{24}
}

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

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

func (x *ProgressGroup) GetWeak() bool {
	if x != nil {
		return x.Weak
	}
	return false
}

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

	HttpProxy  string `protobuf:"bytes,1,opt,name=http_proxy,json=httpProxy,proto3" json:"http_proxy,omitempty"`
	HttpsProxy string `protobuf:"bytes,2,opt,name=https_proxy,json=httpsProxy,proto3" json:"https_proxy,omitempty"`
	FtpProxy   string `protobuf:"bytes,3,opt,name=ftp_proxy,json=ftpProxy,proto3" json:"ftp_proxy,omitempty"`
	NoProxy    string `protobuf:"bytes,4,opt,name=no_proxy,json=noProxy,proto3" json:"no_proxy,omitempty"`
	AllProxy   string `protobuf:"bytes,5,opt,name=all_proxy,json=allProxy,proto3" json:"all_proxy,omitempty"`
}

func (x *ProxyEnv) Reset() {
	*x = ProxyEnv{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ProxyEnv) ProtoMessage() {}

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

// Deprecated: Use ProxyEnv.ProtoReflect.Descriptor instead.
func (*ProxyEnv) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{25}
}

func (x *ProxyEnv) GetHttpProxy() string {
	if x != nil {
		return x.HttpProxy
	}
	return ""
}

func (x *ProxyEnv) GetHttpsProxy() string {
	if x != nil {
		return x.HttpsProxy
	}
	return ""
}

func (x *ProxyEnv) GetFtpProxy() string {
	if x != nil {
		return x.FtpProxy
	}
	return ""
}

func (x *ProxyEnv) GetNoProxy() string {
	if x != nil {
		return x.NoProxy
	}
	return ""
}

func (x *ProxyEnv) GetAllProxy() string {
	if x != nil {
		return x.AllProxy
	}
	return ""
}

// WorkerConstraints defines conditions for the worker
type WorkerConstraints struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filter []string `protobuf:"bytes,1,rep,name=filter,proto3" json:"filter,omitempty"` // containerd-style filter
}

func (x *WorkerConstraints) Reset() {
	*x = WorkerConstraints{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*WorkerConstraints) ProtoMessage() {}

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

// Deprecated: Use WorkerConstraints.ProtoReflect.Descriptor instead.
func (*WorkerConstraints) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{26}
}

func (x *WorkerConstraints) GetFilter() []string {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Definition is the LLB definition structure with per-vertex metadata entries
type Definition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// def is a list of marshaled Op messages
	Def [][]byte `protobuf:"bytes,1,rep,name=def,proto3" json:"def,omitempty"`
	// metadata contains metadata for the each of the Op messages.
	// A key must be an LLB op digest string. Currently, empty string is not expected as a key, but it may change in the future.
	Metadata map[string]*OpMetadata `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Source contains the source mapping information for the vertexes in the definition
	Source *Source `protobuf:"bytes,3,opt,name=Source,proto3" json:"Source,omitempty"`
}

func (x *Definition) Reset() {
	*x = Definition{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Definition) ProtoMessage() {}

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

// Deprecated: Use Definition.ProtoReflect.Descriptor instead.
func (*Definition) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{27}
}

func (x *Definition) GetDef() [][]byte {
	if x != nil {
		return x.Def
	}
	return nil
}

func (x *Definition) GetMetadata() map[string]*OpMetadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Definition) GetSource() *Source {
	if x != nil {
		return x.Source
	}
	return nil
}

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

	Actions []*FileAction `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
}

func (x *FileOp) Reset() {
	*x = FileOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileOp) ProtoMessage() {}

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

// Deprecated: Use FileOp.ProtoReflect.Descriptor instead.
func (*FileOp) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{28}
}

func (x *FileOp) GetActions() []*FileAction {
	if x != nil {
		return x.Actions
	}
	return nil
}

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

	// changes to this structure must be represented in json.go.
	Input          int64 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`                   // could be real input or target (target index + max input index)
	SecondaryInput int64 `protobuf:"varint,2,opt,name=secondaryInput,proto3" json:"secondaryInput,omitempty"` // --//--
	Output         int64 `protobuf:"varint,3,opt,name=output,proto3" json:"output,omitempty"`
	// Types that are assignable to Action:
	//
	//	*FileAction_Copy
	//	*FileAction_Mkfile
	//	*FileAction_Mkdir
	//	*FileAction_Rm
	//	*FileAction_Symlink
	Action isFileAction_Action `protobuf_oneof:"action"`
}

func (x *FileAction) Reset() {
	*x = FileAction{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileAction) ProtoMessage() {}

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

// Deprecated: Use FileAction.ProtoReflect.Descriptor instead.
func (*FileAction) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{29}
}

func (x *FileAction) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

func (x *FileAction) GetSecondaryInput() int64 {
	if x != nil {
		return x.SecondaryInput
	}
	return 0
}

func (x *FileAction) GetOutput() int64 {
	if x != nil {
		return x.Output
	}
	return 0
}

func (m *FileAction) GetAction() isFileAction_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

func (x *FileAction) GetCopy() *FileActionCopy {
	if x, ok := x.GetAction().(*FileAction_Copy); ok {
		return x.Copy
	}
	return nil
}

func (x *FileAction) GetMkfile() *FileActionMkFile {
	if x, ok := x.GetAction().(*FileAction_Mkfile); ok {
		return x.Mkfile
	}
	return nil
}

func (x *FileAction) GetMkdir() *FileActionMkDir {
	if x, ok := x.GetAction().(*FileAction_Mkdir); ok {
		return x.Mkdir
	}
	return nil
}

func (x *FileAction) GetRm() *FileActionRm {
	if x, ok := x.GetAction().(*FileAction_Rm); ok {
		return x.Rm
	}
	return nil
}

func (x *FileAction) GetSymlink() *FileActionSymlink {
	if x, ok := x.GetAction().(*FileAction_Symlink); ok {
		return x.Symlink
	}
	return nil
}

type isFileAction_Action interface {
	isFileAction_Action()
}

type FileAction_Copy struct {
	// FileActionCopy copies files from secondaryInput on top of input
	Copy *FileActionCopy `protobuf:"bytes,4,opt,name=copy,proto3,oneof"`
}

type FileAction_Mkfile struct {
	// FileActionMkFile creates a new file
	Mkfile *FileActionMkFile `protobuf:"bytes,5,opt,name=mkfile,proto3,oneof"`
}

type FileAction_Mkdir struct {
	// FileActionMkDir creates a new directory
	Mkdir *FileActionMkDir `protobuf:"bytes,6,opt,name=mkdir,proto3,oneof"`
}

type FileAction_Rm struct {
	// FileActionRm removes a file
	Rm *FileActionRm `protobuf:"bytes,7,opt,name=rm,proto3,oneof"`
}

type FileAction_Symlink struct {
	// FileActionSymlink creates a symlink
	Symlink *FileActionSymlink `protobuf:"bytes,8,opt,name=symlink,proto3,oneof"`
}

func (*FileAction_Copy) isFileAction_Action() {}

func (*FileAction_Mkfile) isFileAction_Action() {}

func (*FileAction_Mkdir) isFileAction_Action() {}

func (*FileAction_Rm) isFileAction_Action() {}

func (*FileAction_Symlink) isFileAction_Action() {}

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

	// src is the source path
	Src string `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
	// dest path
	Dest string `protobuf:"bytes,2,opt,name=dest,proto3" json:"dest,omitempty"`
	// optional owner override
	Owner *ChownOpt `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"`
	// optional permission bits override
	Mode int32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
	// followSymlink resolves symlinks in src
	FollowSymlink bool `protobuf:"varint,5,opt,name=followSymlink,proto3" json:"followSymlink,omitempty"`
	// dirCopyContents only copies contents if src is a directory
	DirCopyContents bool `protobuf:"varint,6,opt,name=dirCopyContents,proto3" json:"dirCopyContents,omitempty"`
	// attemptUnpackDockerCompatibility detects if src is an archive to unpack it instead
	AttemptUnpackDockerCompatibility bool `protobuf:"varint,7,opt,name=attemptUnpackDockerCompatibility,proto3" json:"attemptUnpackDockerCompatibility,omitempty"`
	// createDestPath creates dest path directories if needed
	CreateDestPath bool `protobuf:"varint,8,opt,name=createDestPath,proto3" json:"createDestPath,omitempty"`
	// allowWildcard allows filepath.Match wildcards in src path
	AllowWildcard bool `protobuf:"varint,9,opt,name=allowWildcard,proto3" json:"allowWildcard,omitempty"`
	// allowEmptyWildcard doesn't fail the whole copy if wildcard doesn't resolve to files
	AllowEmptyWildcard bool `protobuf:"varint,10,opt,name=allowEmptyWildcard,proto3" json:"allowEmptyWildcard,omitempty"`
	// optional created time override
	Timestamp int64 `protobuf:"varint,11,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// include only files/dirs matching at least one of these patterns
	IncludePatterns []string `protobuf:"bytes,12,rep,name=include_patterns,json=includePatterns,proto3" json:"include_patterns,omitempty"`
	// exclude files/dir matching any of these patterns (even if they match an include pattern)
	ExcludePatterns []string `protobuf:"bytes,13,rep,name=exclude_patterns,json=excludePatterns,proto3" json:"exclude_patterns,omitempty"`
	// alwaysReplaceExistingDestPaths results in an existing dest path that differs in type from the src path being replaced rather than the default of returning an error
	AlwaysReplaceExistingDestPaths bool `protobuf:"varint,14,opt,name=alwaysReplaceExistingDestPaths,proto3" json:"alwaysReplaceExistingDestPaths,omitempty"`
	// mode in non-octal format
	ModeStr string `protobuf:"bytes,15,opt,name=modeStr,proto3" json:"modeStr,omitempty"`
}

func (x *FileActionCopy) Reset() {
	*x = FileActionCopy{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileActionCopy) ProtoMessage() {}

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

// Deprecated: Use FileActionCopy.ProtoReflect.Descriptor instead.
func (*FileActionCopy) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{30}
}

func (x *FileActionCopy) GetSrc() string {
	if x != nil {
		return x.Src
	}
	return ""
}

func (x *FileActionCopy) GetDest() string {
	if x != nil {
		return x.Dest
	}
	return ""
}

func (x *FileActionCopy) GetOwner() *ChownOpt {
	if x != nil {
		return x.Owner
	}
	return nil
}

func (x *FileActionCopy) GetMode() int32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (x *FileActionCopy) GetFollowSymlink() bool {
	if x != nil {
		return x.FollowSymlink
	}
	return false
}

func (x *FileActionCopy) GetDirCopyContents() bool {
	if x != nil {
		return x.DirCopyContents
	}
	return false
}

func (x *FileActionCopy) GetAttemptUnpackDockerCompatibility() bool {
	if x != nil {
		return x.AttemptUnpackDockerCompatibility
	}
	return false
}

func (x *FileActionCopy) GetCreateDestPath() bool {
	if x != nil {
		return x.CreateDestPath
	}
	return false
}

func (x *FileActionCopy) GetAllowWildcard() bool {
	if x != nil {
		return x.AllowWildcard
	}
	return false
}

func (x *FileActionCopy) GetAllowEmptyWildcard() bool {
	if x != nil {
		return x.AllowEmptyWildcard
	}
	return false
}

func (x *FileActionCopy) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *FileActionCopy) GetIncludePatterns() []string {
	if x != nil {
		return x.IncludePatterns
	}
	return nil
}

func (x *FileActionCopy) GetExcludePatterns() []string {
	if x != nil {
		return x.ExcludePatterns
	}
	return nil
}

func (x *FileActionCopy) GetAlwaysReplaceExistingDestPaths() bool {
	if x != nil {
		return x.AlwaysReplaceExistingDestPaths
	}
	return false
}

func (x *FileActionCopy) GetModeStr() string {
	if x != nil {
		return x.ModeStr
	}
	return ""
}

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

	// path for the new file
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// permission bits
	Mode int32 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"`
	// data is the new file contents
	Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
	// optional owner for the new file
	Owner *ChownOpt `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"`
	// optional created time override
	Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *FileActionMkFile) Reset() {
	*x = FileActionMkFile{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileActionMkFile) ProtoMessage() {}

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

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

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

func (x *FileActionMkFile) GetMode() int32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (x *FileActionMkFile) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *FileActionMkFile) GetOwner() *ChownOpt {
	if x != nil {
		return x.Owner
	}
	return nil
}

func (x *FileActionMkFile) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

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

	// destination path for the new file representing the link
	Oldpath string `protobuf:"bytes,1,opt,name=oldpath,proto3" json:"oldpath,omitempty"`
	// source path for the link
	Newpath string `protobuf:"bytes,2,opt,name=newpath,proto3" json:"newpath,omitempty"`
	// optional owner for the new file
	Owner *ChownOpt `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"`
	// optional created time override
	Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *FileActionSymlink) Reset() {
	*x = FileActionSymlink{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileActionSymlink) ProtoMessage() {}

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

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

func (x *FileActionSymlink) GetOldpath() string {
	if x != nil {
		return x.Oldpath
	}
	return ""
}

func (x *FileActionSymlink) GetNewpath() string {
	if x != nil {
		return x.Newpath
	}
	return ""
}

func (x *FileActionSymlink) GetOwner() *ChownOpt {
	if x != nil {
		return x.Owner
	}
	return nil
}

func (x *FileActionSymlink) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

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

	// path for the new directory
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// permission bits
	Mode int32 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"`
	// makeParents creates parent directories as well if needed
	MakeParents bool `protobuf:"varint,3,opt,name=makeParents,proto3" json:"makeParents,omitempty"`
	// optional owner for the new directory
	Owner *ChownOpt `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"`
	// optional created time override
	Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *FileActionMkDir) Reset() {
	*x = FileActionMkDir{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileActionMkDir) ProtoMessage() {}

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

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

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

func (x *FileActionMkDir) GetMode() int32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (x *FileActionMkDir) GetMakeParents() bool {
	if x != nil {
		return x.MakeParents
	}
	return false
}

func (x *FileActionMkDir) GetOwner() *ChownOpt {
	if x != nil {
		return x.Owner
	}
	return nil
}

func (x *FileActionMkDir) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

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

	// path to remove
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// allowNotFound doesn't fail the rm if file is not found
	AllowNotFound bool `protobuf:"varint,2,opt,name=allowNotFound,proto3" json:"allowNotFound,omitempty"`
	// allowWildcard allows filepath.Match wildcards in path
	AllowWildcard bool `protobuf:"varint,3,opt,name=allowWildcard,proto3" json:"allowWildcard,omitempty"`
}

func (x *FileActionRm) Reset() {
	*x = FileActionRm{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*FileActionRm) ProtoMessage() {}

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

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

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

func (x *FileActionRm) GetAllowNotFound() bool {
	if x != nil {
		return x.AllowNotFound
	}
	return false
}

func (x *FileActionRm) GetAllowWildcard() bool {
	if x != nil {
		return x.AllowWildcard
	}
	return false
}

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

	User  *UserOpt `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	Group *UserOpt `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
}

func (x *ChownOpt) Reset() {
	*x = ChownOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ChownOpt) ProtoMessage() {}

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

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

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

func (x *ChownOpt) GetGroup() *UserOpt {
	if x != nil {
		return x.Group
	}
	return nil
}

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

	// changes to this structure must be represented in json.go.
	//
	// Types that are assignable to User:
	//
	//	*UserOpt_ByName
	//	*UserOpt_ByID
	User isUserOpt_User `protobuf_oneof:"user"`
}

func (x *UserOpt) Reset() {
	*x = UserOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UserOpt) ProtoMessage() {}

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

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

func (m *UserOpt) GetUser() isUserOpt_User {
	if m != nil {
		return m.User
	}
	return nil
}

func (x *UserOpt) GetByName() *NamedUserOpt {
	if x, ok := x.GetUser().(*UserOpt_ByName); ok {
		return x.ByName
	}
	return nil
}

func (x *UserOpt) GetByID() uint32 {
	if x, ok := x.GetUser().(*UserOpt_ByID); ok {
		return x.ByID
	}
	return 0
}

type isUserOpt_User interface {
	isUserOpt_User()
}

type UserOpt_ByName struct {
	ByName *NamedUserOpt `protobuf:"bytes,1,opt,name=byName,proto3,oneof"`
}

type UserOpt_ByID struct {
	ByID uint32 `protobuf:"varint,2,opt,name=byID,proto3,oneof"`
}

func (*UserOpt_ByName) isUserOpt_User() {}

func (*UserOpt_ByID) isUserOpt_User() {}

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

	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Input int64  `protobuf:"varint,2,opt,name=input,proto3" json:"input,omitempty"`
}

func (x *NamedUserOpt) Reset() {
	*x = NamedUserOpt{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*NamedUserOpt) ProtoMessage() {}

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

// Deprecated: Use NamedUserOpt.ProtoReflect.Descriptor instead.
func (*NamedUserOpt) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{37}
}

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

func (x *NamedUserOpt) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

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

	Input int64 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
}

func (x *MergeInput) Reset() {
	*x = MergeInput{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MergeInput) ProtoMessage() {}

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

// Deprecated: Use MergeInput.ProtoReflect.Descriptor instead.
func (*MergeInput) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{38}
}

func (x *MergeInput) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

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

	Inputs []*MergeInput `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
}

func (x *MergeOp) Reset() {
	*x = MergeOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*MergeOp) ProtoMessage() {}

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

// Deprecated: Use MergeOp.ProtoReflect.Descriptor instead.
func (*MergeOp) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{39}
}

func (x *MergeOp) GetInputs() []*MergeInput {
	if x != nil {
		return x.Inputs
	}
	return nil
}

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

	Input int64 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
}

func (x *LowerDiffInput) Reset() {
	*x = LowerDiffInput{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*LowerDiffInput) ProtoMessage() {}

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

// Deprecated: Use LowerDiffInput.ProtoReflect.Descriptor instead.
func (*LowerDiffInput) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{40}
}

func (x *LowerDiffInput) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

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

	Input int64 `protobuf:"varint,1,opt,name=input,proto3" json:"input,omitempty"`
}

func (x *UpperDiffInput) Reset() {
	*x = UpperDiffInput{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*UpperDiffInput) ProtoMessage() {}

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

// Deprecated: Use UpperDiffInput.ProtoReflect.Descriptor instead.
func (*UpperDiffInput) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{41}
}

func (x *UpperDiffInput) GetInput() int64 {
	if x != nil {
		return x.Input
	}
	return 0
}

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

	Lower *LowerDiffInput `protobuf:"bytes,1,opt,name=lower,proto3" json:"lower,omitempty"`
	Upper *UpperDiffInput `protobuf:"bytes,2,opt,name=upper,proto3" json:"upper,omitempty"`
}

func (x *DiffOp) Reset() {
	*x = DiffOp{}
	mi := &file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DiffOp) ProtoMessage() {}

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

// Deprecated: Use DiffOp.ProtoReflect.Descriptor instead.
func (*DiffOp) Descriptor() ([]byte, []int) {
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP(), []int{42}
}

func (x *DiffOp) GetLower() *LowerDiffInput {
	if x != nil {
		return x.Lower
	}
	return nil
}

func (x *DiffOp) GetUpper() *UpperDiffInput {
	if x != nil {
		return x.Upper
	}
	return nil
}

var File_github_com_moby_buildkit_solver_pb_ops_proto protoreflect.FileDescriptor

var file_github_com_moby_buildkit_solver_pb_ops_proto_rawDesc = []byte{
	0x0a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x6f, 0x62,
	0x79, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x2f, 0x73, 0x6f, 0x6c, 0x76, 0x65,
	0x72, 0x2f, 0x70, 0x62, 0x2f, 0x6f, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02,
	0x70, 0x62, 0x22, 0xe8, 0x02, 0x0a, 0x02, 0x4f, 0x70, 0x12, 0x21, 0x0a, 0x06, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x49,
	0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x04,
	0x65, 0x78, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e,
	0x45, 0x78, 0x65, 0x63, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, 0x26,
	0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
	0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x06,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70,
	0x48, 0x00, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69,
	0x6c, 0x64, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x23, 0x0a,
	0x05, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70,
	0x62, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x05, 0x6d, 0x65, 0x72,
	0x67, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04,
	0x64, 0x69, 0x66, 0x66, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x37,
	0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43,
	0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73,
	0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x96, 0x01,
	0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72,
	0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x0e,
	0x0a, 0x02, 0x4f, 0x53, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x4f, 0x53, 0x12, 0x18,
	0x0a, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x53, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x53, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x53, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x4f, 0x53, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12,
	0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xcb, 0x01,
	0x0a, 0x06, 0x45, 0x78, 0x65, 0x63, 0x4f, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61,
	0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x6f, 0x75, 0x6e,
	0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x6e, 0x65, 0x74,
	0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e,
	0x4e, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
	0x12, 0x2c, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
	0x4d, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b,
	0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76,
	0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0xf3, 0x02, 0x0a, 0x04,
	0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x77,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
	0x12, 0x29, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e,
	0x76, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x76, 0x12, 0x2a, 0x0a, 0x0a, 0x65,
	0x78, 0x74, 0x72, 0x61, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x50, 0x52, 0x0a, 0x65, 0x78, 0x74,
	0x72, 0x61, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x75, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52,
	0x06, 0x75, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x72,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x75, 0x62, 0x73, 0x52,
	0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x75, 0x62, 0x73,
	0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65,
	0x73, 0x22, 0x2c, 0x0a, 0x06, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x48,
	0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x48, 0x6f, 0x73, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x50, 0x22,
	0x44, 0x0a, 0x06, 0x55, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x53, 0x6f, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x53, 0x6f, 0x66,
	0x74, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x04, 0x48, 0x61, 0x72, 0x64, 0x22, 0x4b, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45,
	0x6e, 0x76, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x61, 0x6c, 0x22, 0xaa, 0x03, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12,
	0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
	0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65,
	0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4d,
	0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x54, 0x6d, 0x70, 0x66, 0x73, 0x4f, 0x70, 0x74, 0x18,
	0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x6d, 0x70, 0x66, 0x73,
	0x4f, 0x70, 0x74, 0x52, 0x08, 0x54, 0x6d, 0x70, 0x66, 0x73, 0x4f, 0x70, 0x74, 0x12, 0x28, 0x0a,
	0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x70, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x08, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x2b, 0x0a, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x4f, 0x70, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e,
	0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x4f, 0x70, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x53, 0x53, 0x48, 0x4f, 0x70, 0x74, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x53, 0x48, 0x4f, 0x70, 0x74,
	0x52, 0x06, 0x53, 0x53, 0x48, 0x4f, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x49, 0x44, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e,
	0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22,
	0x1e, 0x0a, 0x08, 0x54, 0x6d, 0x70, 0x66, 0x73, 0x4f, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22,
	0x49, 0x0a, 0x08, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x07, 0x73,
	0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70,
	0x62, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70,
	0x74, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x6f, 0x0a, 0x09, 0x53, 0x65,
	0x63, 0x72, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d,
	0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x6c, 0x0a, 0x06, 0x53,
	0x53, 0x48, 0x4f, 0x70, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x93, 0x01, 0x0a, 0x08, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x4f, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
	0x61, 0x74, 0x74, 0x72, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0xa9, 0x02, 0x0a, 0x07, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75,
	0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64,
	0x4f, 0x70, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
	0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x65, 0x66, 0x12, 0x2c, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69,
	0x6c, 0x64, 0x4f, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x1a, 0x49, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c,
	0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x22, 0x0a, 0x0a, 0x42,
	0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22,
	0x87, 0x03, 0x0a, 0x0a, 0x4f, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21,
	0x0a, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e,
	0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x0b, 0x65, 0x78, 0x70,
	0x6f, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x63, 0x61, 0x70, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x04, 0x63, 0x61, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x1a, 0x3e, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb4, 0x01, 0x0a, 0x06, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a,
	0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70,
	0x62, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e,
	0x66, 0x6f, 0x73, 0x1a, 0x4b, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x37, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a,
	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09,
	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x0a, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x69,
	0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70,
	0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65,
	0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x72,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x22,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e,
	0x70, 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x1e, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x65,
	0x6e, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x69,
	0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72,
	0x22, 0x23, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65,
	0x61, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x22, 0x9f,
	0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x76, 0x12, 0x1d, 0x0a, 0x0a, 0x68,
	0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x74,
	0x74, 0x70, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x66,
	0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x66, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x70,
	0x72, 0x6f, 0x78, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x6f, 0x50, 0x72,
	0x6f, 0x78, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x78, 0x79,
	0x22, 0x2b, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72,
	0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xc9, 0x01,
	0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03,
	0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x64, 0x65, 0x66, 0x12, 0x38,
	0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x4b, 0x0a, 0x0d,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
	0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x32, 0x0a, 0x06, 0x46, 0x69, 0x6c,
	0x65, 0x4f, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x02,
	0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x49,
	0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x6f,
	0x6e, 0x64, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x43, 0x6f, 0x70, 0x79, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x12, 0x2e, 0x0a, 0x06,
	0x6d, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6b, 0x46, 0x69,
	0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x05,
	0x6d, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62,
	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6b, 0x44, 0x69, 0x72,
	0x48, 0x00, 0x52, 0x05, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x02, 0x72, 0x6d, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6d, 0x48, 0x00, 0x52, 0x02, 0x72, 0x6d, 0x12, 0x31, 0x0a,
	0x07, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79,
	0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b,
	0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x04, 0x0a, 0x0e, 0x46,
	0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12,
	0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64,
	0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x4f, 0x70, 0x74,
	0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66,
	0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e,
	0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x72, 0x43,
	0x6f, 0x70, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x20, 0x61,
	0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x44, 0x6f, 0x63, 0x6b,
	0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x55, 0x6e,
	0x70, 0x61, 0x63, 0x6b, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74,
	0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x44, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12,
	0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x69, 0x6c,
	0x64, 0x63, 0x61, 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x57, 0x69, 0x6c,
	0x64, 0x63, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70,
	0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69,
	0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x29,
	0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,
	0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
	0x65, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x6c, 0x77,
	0x61, 0x79, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x44, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x1e, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
	0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x10,
	0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6b, 0x46, 0x69, 0x6c, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05,
	0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62,
	0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89,
	0x01, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6d,
	0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18,
	0x0a, 0x07, 0x6e, 0x65, 0x77, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x6e, 0x65, 0x77, 0x70, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65,
	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x6f,
	0x77, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x46,
	0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
	0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x6b, 0x65, 0x50, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x6b,
	0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x6f,
	0x77, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x69,
	0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
	0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24,
	0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x6f, 0x74, 0x46,
	0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x69, 0x6c,
	0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c,
	0x6f, 0x77, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x08, 0x43, 0x68,
	0x6f, 0x77, 0x6e, 0x4f, 0x70, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70,
	0x74, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x4f, 0x70, 0x74, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x53, 0x0a, 0x07, 0x55, 0x73,
	0x65, 0x72, 0x4f, 0x70, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x62, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,
	0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x48, 0x00, 0x52, 0x06, 0x62, 0x79, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48,
	0x00, 0x52, 0x04, 0x62, 0x79, 0x49, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
	0x38, 0x0a, 0x0c, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x22, 0x0a, 0x0a, 0x4d, 0x65, 0x72,
	0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x31, 0x0a,
	0x07, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x4f, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75,
	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65,
	0x72, 0x67, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73,
	0x22, 0x26, 0x0a, 0x0e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6e, 0x70,
	0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x26, 0x0a, 0x0e, 0x55, 0x70, 0x70, 0x65,
	0x72, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x22, 0x5c, 0x0a, 0x06, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f,
	0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x4c,
	0x6f, 0x77, 0x65, 0x72, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x6c,
	0x6f, 0x77, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x05, 0x75, 0x70, 0x70, 0x65, 0x72, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x44, 0x69,
	0x66, 0x66, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x75, 0x70, 0x70, 0x65, 0x72, 0x2a, 0x28,
	0x0a, 0x07, 0x4e, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53,
	0x45, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x08,
	0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x2a, 0x29, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41, 0x4e, 0x44,
	0x42, 0x4f, 0x58, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x53, 0x45, 0x43, 0x55, 0x52,
	0x45, 0x10, 0x01, 0x2a, 0x40, 0x0a, 0x09, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x08, 0x0a, 0x04, 0x42, 0x49, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45,
	0x43, 0x52, 0x45, 0x54, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, 0x48, 0x10, 0x02, 0x12,
	0x09, 0x0a, 0x05, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4d,
	0x50, 0x46, 0x53, 0x10, 0x04, 0x2a, 0x31, 0x0a, 0x11, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
	0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4e, 0x10, 0x01, 0x12,
	0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x2a, 0x36, 0x0a, 0x0f, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x53,
	0x48, 0x41, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41,
	0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02,
	0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d,
	0x6f, 0x62, 0x79, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x2f, 0x73, 0x6f, 0x6c,
	0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescOnce sync.Once
	file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescData = file_github_com_moby_buildkit_solver_pb_ops_proto_rawDesc
)

func file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescGZIP() []byte {
	file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescOnce.Do(func() {
		file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescData)
	})
	return file_github_com_moby_buildkit_solver_pb_ops_proto_rawDescData
}

var file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes = make([]protoimpl.MessageInfo, 50)
var file_github_com_moby_buildkit_solver_pb_ops_proto_goTypes = []any{
	(NetMode)(0),              // 0: pb.NetMode
	(SecurityMode)(0),         // 1: pb.SecurityMode
	(MountType)(0),            // 2: pb.MountType
	(MountContentCache)(0),    // 3: pb.MountContentCache
	(CacheSharingOpt)(0),      // 4: pb.CacheSharingOpt
	(*Op)(nil),                // 5: pb.Op
	(*Platform)(nil),          // 6: pb.Platform
	(*Input)(nil),             // 7: pb.Input
	(*ExecOp)(nil),            // 8: pb.ExecOp
	(*Meta)(nil),              // 9: pb.Meta
	(*HostIP)(nil),            // 10: pb.HostIP
	(*Ulimit)(nil),            // 11: pb.Ulimit
	(*SecretEnv)(nil),         // 12: pb.SecretEnv
	(*Mount)(nil),             // 13: pb.Mount
	(*TmpfsOpt)(nil),          // 14: pb.TmpfsOpt
	(*CacheOpt)(nil),          // 15: pb.CacheOpt
	(*SecretOpt)(nil),         // 16: pb.SecretOpt
	(*SSHOpt)(nil),            // 17: pb.SSHOpt
	(*SourceOp)(nil),          // 18: pb.SourceOp
	(*BuildOp)(nil),           // 19: pb.BuildOp
	(*BuildInput)(nil),        // 20: pb.BuildInput
	(*OpMetadata)(nil),        // 21: pb.OpMetadata
	(*Source)(nil),            // 22: pb.Source
	(*Locations)(nil),         // 23: pb.Locations
	(*SourceInfo)(nil),        // 24: pb.SourceInfo
	(*Location)(nil),          // 25: pb.Location
	(*Range)(nil),             // 26: pb.Range
	(*Position)(nil),          // 27: pb.Position
	(*ExportCache)(nil),       // 28: pb.ExportCache
	(*ProgressGroup)(nil),     // 29: pb.ProgressGroup
	(*ProxyEnv)(nil),          // 30: pb.ProxyEnv
	(*WorkerConstraints)(nil), // 31: pb.WorkerConstraints
	(*Definition)(nil),        // 32: pb.Definition
	(*FileOp)(nil),            // 33: pb.FileOp
	(*FileAction)(nil),        // 34: pb.FileAction
	(*FileActionCopy)(nil),    // 35: pb.FileActionCopy
	(*FileActionMkFile)(nil),  // 36: pb.FileActionMkFile
	(*FileActionSymlink)(nil), // 37: pb.FileActionSymlink
	(*FileActionMkDir)(nil),   // 38: pb.FileActionMkDir
	(*FileActionRm)(nil),      // 39: pb.FileActionRm
	(*ChownOpt)(nil),          // 40: pb.ChownOpt
	(*UserOpt)(nil),           // 41: pb.UserOpt
	(*NamedUserOpt)(nil),      // 42: pb.NamedUserOpt
	(*MergeInput)(nil),        // 43: pb.MergeInput
	(*MergeOp)(nil),           // 44: pb.MergeOp
	(*LowerDiffInput)(nil),    // 45: pb.LowerDiffInput
	(*UpperDiffInput)(nil),    // 46: pb.UpperDiffInput
	(*DiffOp)(nil),            // 47: pb.DiffOp
	nil,                       // 48: pb.SourceOp.AttrsEntry
	nil,                       // 49: pb.BuildOp.InputsEntry
	nil,                       // 50: pb.BuildOp.AttrsEntry
	nil,                       // 51: pb.OpMetadata.DescriptionEntry
	nil,                       // 52: pb.OpMetadata.CapsEntry
	nil,                       // 53: pb.Source.LocationsEntry
	nil,                       // 54: pb.Definition.MetadataEntry
}
var file_github_com_moby_buildkit_solver_pb_ops_proto_depIdxs = []int32{
	7,  // 0: pb.Op.inputs:type_name -> pb.Input
	8,  // 1: pb.Op.exec:type_name -> pb.ExecOp
	18, // 2: pb.Op.source:type_name -> pb.SourceOp
	33, // 3: pb.Op.file:type_name -> pb.FileOp
	19, // 4: pb.Op.build:type_name -> pb.BuildOp
	44, // 5: pb.Op.merge:type_name -> pb.MergeOp
	47, // 6: pb.Op.diff:type_name -> pb.DiffOp
	6,  // 7: pb.Op.platform:type_name -> pb.Platform
	31, // 8: pb.Op.constraints:type_name -> pb.WorkerConstraints
	9,  // 9: pb.ExecOp.meta:type_name -> pb.Meta
	13, // 10: pb.ExecOp.mounts:type_name -> pb.Mount
	0,  // 11: pb.ExecOp.network:type_name -> pb.NetMode
	1,  // 12: pb.ExecOp.security:type_name -> pb.SecurityMode
	12, // 13: pb.ExecOp.secretenv:type_name -> pb.SecretEnv
	30, // 14: pb.Meta.proxy_env:type_name -> pb.ProxyEnv
	10, // 15: pb.Meta.extraHosts:type_name -> pb.HostIP
	11, // 16: pb.Meta.ulimit:type_name -> pb.Ulimit
	2,  // 17: pb.Mount.mountType:type_name -> pb.MountType
	14, // 18: pb.Mount.TmpfsOpt:type_name -> pb.TmpfsOpt
	15, // 19: pb.Mount.cacheOpt:type_name -> pb.CacheOpt
	16, // 20: pb.Mount.secretOpt:type_name -> pb.SecretOpt
	17, // 21: pb.Mount.SSHOpt:type_name -> pb.SSHOpt
	3,  // 22: pb.Mount.contentCache:type_name -> pb.MountContentCache
	4,  // 23: pb.CacheOpt.sharing:type_name -> pb.CacheSharingOpt
	48, // 24: pb.SourceOp.attrs:type_name -> pb.SourceOp.AttrsEntry
	49, // 25: pb.BuildOp.inputs:type_name -> pb.BuildOp.InputsEntry
	32, // 26: pb.BuildOp.def:type_name -> pb.Definition
	50, // 27: pb.BuildOp.attrs:type_name -> pb.BuildOp.AttrsEntry
	51, // 28: pb.OpMetadata.description:type_name -> pb.OpMetadata.DescriptionEntry
	28, // 29: pb.OpMetadata.export_cache:type_name -> pb.ExportCache
	52, // 30: pb.OpMetadata.caps:type_name -> pb.OpMetadata.CapsEntry
	29, // 31: pb.OpMetadata.progress_group:type_name -> pb.ProgressGroup
	53, // 32: pb.Source.locations:type_name -> pb.Source.LocationsEntry
	24, // 33: pb.Source.infos:type_name -> pb.SourceInfo
	25, // 34: pb.Locations.locations:type_name -> pb.Location
	32, // 35: pb.SourceInfo.definition:type_name -> pb.Definition
	26, // 36: pb.Location.ranges:type_name -> pb.Range
	27, // 37: pb.Range.start:type_name -> pb.Position
	27, // 38: pb.Range.end:type_name -> pb.Position
	54, // 39: pb.Definition.metadata:type_name -> pb.Definition.MetadataEntry
	22, // 40: pb.Definition.Source:type_name -> pb.Source
	34, // 41: pb.FileOp.actions:type_name -> pb.FileAction
	35, // 42: pb.FileAction.copy:type_name -> pb.FileActionCopy
	36, // 43: pb.FileAction.mkfile:type_name -> pb.FileActionMkFile
	38, // 44: pb.FileAction.mkdir:type_name -> pb.FileActionMkDir
	39, // 45: pb.FileAction.rm:type_name -> pb.FileActionRm
	37, // 46: pb.FileAction.symlink:type_name -> pb.FileActionSymlink
	40, // 47: pb.FileActionCopy.owner:type_name -> pb.ChownOpt
	40, // 48: pb.FileActionMkFile.owner:type_name -> pb.ChownOpt
	40, // 49: pb.FileActionSymlink.owner:type_name -> pb.ChownOpt
	40, // 50: pb.FileActionMkDir.owner:type_name -> pb.ChownOpt
	41, // 51: pb.ChownOpt.user:type_name -> pb.UserOpt
	41, // 52: pb.ChownOpt.group:type_name -> pb.UserOpt
	42, // 53: pb.UserOpt.byName:type_name -> pb.NamedUserOpt
	43, // 54: pb.MergeOp.inputs:type_name -> pb.MergeInput
	45, // 55: pb.DiffOp.lower:type_name -> pb.LowerDiffInput
	46, // 56: pb.DiffOp.upper:type_name -> pb.UpperDiffInput
	20, // 57: pb.BuildOp.InputsEntry.value:type_name -> pb.BuildInput
	23, // 58: pb.Source.LocationsEntry.value:type_name -> pb.Locations
	21, // 59: pb.Definition.MetadataEntry.value:type_name -> pb.OpMetadata
	60, // [60:60] is the sub-list for method output_type
	60, // [60:60] is the sub-list for method input_type
	60, // [60:60] is the sub-list for extension type_name
	60, // [60:60] is the sub-list for extension extendee
	0,  // [0:60] is the sub-list for field type_name
}

func init() { file_github_com_moby_buildkit_solver_pb_ops_proto_init() }
func file_github_com_moby_buildkit_solver_pb_ops_proto_init() {
	if File_github_com_moby_buildkit_solver_pb_ops_proto != nil {
		return
	}
	file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[0].OneofWrappers = []any{
		(*Op_Exec)(nil),
		(*Op_Source)(nil),
		(*Op_File)(nil),
		(*Op_Build)(nil),
		(*Op_Merge)(nil),
		(*Op_Diff)(nil),
	}
	file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[29].OneofWrappers = []any{
		(*FileAction_Copy)(nil),
		(*FileAction_Mkfile)(nil),
		(*FileAction_Mkdir)(nil),
		(*FileAction_Rm)(nil),
		(*FileAction_Symlink)(nil),
	}
	file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes[36].OneofWrappers = []any{
		(*UserOpt_ByName)(nil),
		(*UserOpt_ByID)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_github_com_moby_buildkit_solver_pb_ops_proto_rawDesc,
			NumEnums:      5,
			NumMessages:   50,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_github_com_moby_buildkit_solver_pb_ops_proto_goTypes,
		DependencyIndexes: file_github_com_moby_buildkit_solver_pb_ops_proto_depIdxs,
		EnumInfos:         file_github_com_moby_buildkit_solver_pb_ops_proto_enumTypes,
		MessageInfos:      file_github_com_moby_buildkit_solver_pb_ops_proto_msgTypes,
	}.Build()
	File_github_com_moby_buildkit_solver_pb_ops_proto = out.File
	file_github_com_moby_buildkit_solver_pb_ops_proto_rawDesc = nil
	file_github_com_moby_buildkit_solver_pb_ops_proto_goTypes = nil
	file_github_com_moby_buildkit_solver_pb_ops_proto_depIdxs = nil
}
