// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        (unknown)
// source: config/v1/config.proto

package configv1

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 BundleType int32

const (
	BundleType_BUNDLE_ZIP BundleType = 0
	BundleType_BUNDLE_TAR BundleType = 1
)

// Enum value maps for BundleType.
var (
	BundleType_name = map[int32]string{
		0: "BUNDLE_ZIP",
		1: "BUNDLE_TAR",
	}
	BundleType_value = map[string]int32{
		"BUNDLE_ZIP": 0,
		"BUNDLE_TAR": 1,
	}
)

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

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

func (BundleType) Descriptor() protoreflect.EnumDescriptor {
	return file_config_v1_config_proto_enumTypes[0].Descriptor()
}

func (BundleType) Type() protoreflect.EnumType {
	return &file_config_v1_config_proto_enumTypes[0]
}

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

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

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

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

func (x *Source) Reset() {
	*x = Source{}
	if protoimpl.UnsafeEnabled {
		mi := &file_config_v1_config_proto_msgTypes[0]
		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_config_v1_config_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

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

func (x *Source) GetRoot() string {
	if x != nil {
		return x.Root
	}
	return ""
}

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

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

	// Types that are assignable to Data:
	//
	//	*SourceUpload_Chunk
	//	*SourceUpload_Path
	Data isSourceUpload_Data `protobuf_oneof:"data"`
}

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

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

func (*SourceUpload) ProtoMessage() {}

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

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

func (m *SourceUpload) GetData() isSourceUpload_Data {
	if m != nil {
		return m.Data
	}
	return nil
}

func (x *SourceUpload) GetChunk() []byte {
	if x, ok := x.GetData().(*SourceUpload_Chunk); ok {
		return x.Chunk
	}
	return nil
}

func (x *SourceUpload) GetPath() string {
	if x, ok := x.GetData().(*SourceUpload_Path); ok {
		return x.Path
	}
	return ""
}

type isSourceUpload_Data interface {
	isSourceUpload_Data()
}

type SourceUpload_Chunk struct {
	Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3,oneof"`
}

type SourceUpload_Path struct {
	Path string `protobuf:"bytes,2,opt,name=path,proto3,oneof"`
}

func (*SourceUpload_Chunk) isSourceUpload_Data() {}

func (*SourceUpload_Path) isSourceUpload_Data() {}

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

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

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

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

func (*Config) ProtoMessage() {}

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

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

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

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

	// Types that are assignable to Data:
	//
	//	*Bundle_Type
	//	*Bundle_Chunk
	Data isBundle_Data `protobuf_oneof:"data"`
}

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

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

func (*Bundle) ProtoMessage() {}

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

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

func (m *Bundle) GetData() isBundle_Data {
	if m != nil {
		return m.Data
	}
	return nil
}

func (x *Bundle) GetType() BundleType {
	if x, ok := x.GetData().(*Bundle_Type); ok {
		return x.Type
	}
	return BundleType_BUNDLE_ZIP
}

func (x *Bundle) GetChunk() []byte {
	if x, ok := x.GetData().(*Bundle_Chunk); ok {
		return x.Chunk
	}
	return nil
}

type isBundle_Data interface {
	isBundle_Data()
}

type Bundle_Type struct {
	Type BundleType `protobuf:"varint,1,opt,name=type,proto3,enum=config.v1.BundleType,oneof"`
}

type Bundle_Chunk struct {
	Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3,oneof"`
}

func (*Bundle_Type) isBundle_Data() {}

func (*Bundle_Chunk) isBundle_Data() {}

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

	// Types that are assignable to Op:
	//
	//	*StringOp_Set
	//	*StringOp_Get
	Op isStringOp_Op `protobuf_oneof:"op"`
}

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

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

func (*StringOp) ProtoMessage() {}

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

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

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

func (x *StringOp) GetSet() string {
	if x, ok := x.GetOp().(*StringOp_Set); ok {
		return x.Set
	}
	return ""
}

func (x *StringOp) GetGet() bool {
	if x, ok := x.GetOp().(*StringOp_Get); ok {
		return x.Get
	}
	return false
}

type isStringOp_Op interface {
	isStringOp_Op()
}

type StringOp_Set struct {
	Set string `protobuf:"bytes,1,opt,name=set,proto3,oneof"`
}

type StringOp_Get struct {
	Get bool `protobuf:"varint,2,opt,name=get,proto3,oneof"`
}

func (*StringOp_Set) isStringOp_Op() {}

func (*StringOp_Get) isStringOp_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*BytesOp_Set
	//	*BytesOp_Get
	Op isBytesOp_Op `protobuf_oneof:"op"`
}

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

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

func (*BytesOp) ProtoMessage() {}

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

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

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

func (x *BytesOp) GetSet() []byte {
	if x, ok := x.GetOp().(*BytesOp_Set); ok {
		return x.Set
	}
	return nil
}

func (x *BytesOp) GetGet() bool {
	if x, ok := x.GetOp().(*BytesOp_Get); ok {
		return x.Get
	}
	return false
}

type isBytesOp_Op interface {
	isBytesOp_Op()
}

type BytesOp_Set struct {
	Set []byte `protobuf:"bytes,1,opt,name=set,proto3,oneof"`
}

type BytesOp_Get struct {
	Get bool `protobuf:"varint,2,opt,name=get,proto3,oneof"`
}

func (*BytesOp_Set) isBytesOp_Op() {}

func (*BytesOp_Get) isBytesOp_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*StringSliceOp_Set
	//	*StringSliceOp_Add
	//	*StringSliceOp_Delete
	//	*StringSliceOp_Clear
	//	*StringSliceOp_List
	Op isStringSliceOp_Op `protobuf_oneof:"op"`
}

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

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

func (*StringSliceOp) ProtoMessage() {}

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

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

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

func (x *StringSliceOp) GetSet() *StringSlice {
	if x, ok := x.GetOp().(*StringSliceOp_Set); ok {
		return x.Set
	}
	return nil
}

func (x *StringSliceOp) GetAdd() *StringSlice {
	if x, ok := x.GetOp().(*StringSliceOp_Add); ok {
		return x.Add
	}
	return nil
}

func (x *StringSliceOp) GetDelete() *StringSlice {
	if x, ok := x.GetOp().(*StringSliceOp_Delete); ok {
		return x.Delete
	}
	return nil
}

func (x *StringSliceOp) GetClear() bool {
	if x, ok := x.GetOp().(*StringSliceOp_Clear); ok {
		return x.Clear
	}
	return false
}

func (x *StringSliceOp) GetList() bool {
	if x, ok := x.GetOp().(*StringSliceOp_List); ok {
		return x.List
	}
	return false
}

type isStringSliceOp_Op interface {
	isStringSliceOp_Op()
}

type StringSliceOp_Set struct {
	Set *StringSlice `protobuf:"bytes,1,opt,name=set,proto3,oneof"`
}

type StringSliceOp_Add struct {
	Add *StringSlice `protobuf:"bytes,2,opt,name=add,proto3,oneof"`
}

type StringSliceOp_Delete struct {
	Delete *StringSlice `protobuf:"bytes,3,opt,name=delete,proto3,oneof"`
}

type StringSliceOp_Clear struct {
	Clear bool `protobuf:"varint,4,opt,name=clear,proto3,oneof"`
}

type StringSliceOp_List struct {
	List bool `protobuf:"varint,5,opt,name=list,proto3,oneof"`
}

func (*StringSliceOp_Set) isStringSliceOp_Op() {}

func (*StringSliceOp_Add) isStringSliceOp_Op() {}

func (*StringSliceOp_Delete) isStringSliceOp_Op() {}

func (*StringSliceOp_Clear) isStringSliceOp_Op() {}

func (*StringSliceOp_List) isStringSliceOp_Op() {}

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

	// Types that are assignable to Return:
	//
	//	*ReturnValue_Value
	//	*ReturnValue_Data
	Return isReturnValue_Return `protobuf_oneof:"return"`
}

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

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

func (*ReturnValue) ProtoMessage() {}

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

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

func (m *ReturnValue) GetReturn() isReturnValue_Return {
	if m != nil {
		return m.Return
	}
	return nil
}

func (x *ReturnValue) GetValue() *StringOp {
	if x, ok := x.GetReturn().(*ReturnValue_Value); ok {
		return x.Value
	}
	return nil
}

func (x *ReturnValue) GetData() *BytesOp {
	if x, ok := x.GetReturn().(*ReturnValue_Data); ok {
		return x.Data
	}
	return nil
}

type isReturnValue_Return interface {
	isReturnValue_Return()
}

type ReturnValue_Value struct {
	Value *StringOp `protobuf:"bytes,1,opt,name=value,proto3,oneof"`
}

type ReturnValue_Data struct {
	Data *BytesOp `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*ReturnValue_Value) isReturnValue_Return() {}

func (*ReturnValue_Data) isReturnValue_Return() {}

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

	Value []string `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*StringSlice) ProtoMessage() {}

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

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

func (x *StringSlice) GetValue() []string {
	if x != nil {
		return x.Value
	}
	return nil
}

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

	Code    int64  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*Error) ProtoMessage() {}

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

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

func (x *Error) GetCode() int64 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *Error) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

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

	Id   *Config    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type BundleType `protobuf:"varint,2,opt,name=type,proto3,enum=config.v1.BundleType" json:"type,omitempty"`
}

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

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

func (*BundleConfig) ProtoMessage() {}

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

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

func (x *BundleConfig) GetId() *Config {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *BundleConfig) GetType() BundleType {
	if x != nil {
		return x.Type
	}
	return BundleType_BUNDLE_ZIP
}

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

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

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

func (*Empty) ProtoMessage() {}

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

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

// Return
type Return struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Return:
	//
	//	*Return_Empty
	//	*Return_String_
	//	*Return_Slice
	//	*Return_Bytes
	//	*Return_Uint64
	//	*Return_Int64
	//	*Return_Float
	//	*Return_Error
	Return isReturn_Return `protobuf_oneof:"return"`
}

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

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

func (*Return) ProtoMessage() {}

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

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

func (m *Return) GetReturn() isReturn_Return {
	if m != nil {
		return m.Return
	}
	return nil
}

func (x *Return) GetEmpty() *Empty {
	if x, ok := x.GetReturn().(*Return_Empty); ok {
		return x.Empty
	}
	return nil
}

func (x *Return) GetString_() string {
	if x, ok := x.GetReturn().(*Return_String_); ok {
		return x.String_
	}
	return ""
}

func (x *Return) GetSlice() *StringSlice {
	if x, ok := x.GetReturn().(*Return_Slice); ok {
		return x.Slice
	}
	return nil
}

func (x *Return) GetBytes() []byte {
	if x, ok := x.GetReturn().(*Return_Bytes); ok {
		return x.Bytes
	}
	return nil
}

func (x *Return) GetUint64() uint64 {
	if x, ok := x.GetReturn().(*Return_Uint64); ok {
		return x.Uint64
	}
	return 0
}

func (x *Return) GetInt64() int64 {
	if x, ok := x.GetReturn().(*Return_Int64); ok {
		return x.Int64
	}
	return 0
}

func (x *Return) GetFloat() float32 {
	if x, ok := x.GetReturn().(*Return_Float); ok {
		return x.Float
	}
	return 0
}

func (x *Return) GetError() *Error {
	if x, ok := x.GetReturn().(*Return_Error); ok {
		return x.Error
	}
	return nil
}

type isReturn_Return interface {
	isReturn_Return()
}

type Return_Empty struct {
	Empty *Empty `protobuf:"bytes,1,opt,name=empty,proto3,oneof"`
}

type Return_String_ struct {
	String_ string `protobuf:"bytes,2,opt,name=string,proto3,oneof"`
}

type Return_Slice struct {
	Slice *StringSlice `protobuf:"bytes,3,opt,name=slice,proto3,oneof"`
}

type Return_Bytes struct {
	Bytes []byte `protobuf:"bytes,4,opt,name=bytes,proto3,oneof"`
}

type Return_Uint64 struct {
	Uint64 uint64 `protobuf:"varint,5,opt,name=uint64,proto3,oneof"`
}

type Return_Int64 struct {
	Int64 int64 `protobuf:"varint,6,opt,name=int64,proto3,oneof"`
}

type Return_Float struct {
	Float float32 `protobuf:"fixed32,7,opt,name=float,proto3,oneof"`
}

type Return_Error struct {
	Error *Error `protobuf:"bytes,8,opt,name=error,proto3,oneof"`
}

func (*Return_Empty) isReturn_Return() {}

func (*Return_String_) isReturn_Return() {}

func (*Return_Slice) isReturn_Return() {}

func (*Return_Bytes) isReturn_Return() {}

func (*Return_Uint64) isReturn_Return() {}

func (*Return_Int64) isReturn_Return() {}

func (*Return_Float) isReturn_Return() {}

func (*Return_Error) isReturn_Return() {}

// Op
type Op struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Op_Cloud
	//	*Op_Hosts
	//	*Op_Auth
	//	*Op_Shapes
	Op isOp_Op `protobuf_oneof:"op"`
}

func (x *Op) Reset() {
	*x = Op{}
	if protoimpl.UnsafeEnabled {
		mi := &file_config_v1_config_proto_msgTypes[13]
		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_config_v1_config_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

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

func (x *Op) GetConfig() *Config {
	if x != nil {
		return x.Config
	}
	return nil
}

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

func (x *Op) GetCloud() *Cloud {
	if x, ok := x.GetOp().(*Op_Cloud); ok {
		return x.Cloud
	}
	return nil
}

func (x *Op) GetHosts() *Hosts {
	if x, ok := x.GetOp().(*Op_Hosts); ok {
		return x.Hosts
	}
	return nil
}

func (x *Op) GetAuth() *Auth {
	if x, ok := x.GetOp().(*Op_Auth); ok {
		return x.Auth
	}
	return nil
}

func (x *Op) GetShapes() *Shapes {
	if x, ok := x.GetOp().(*Op_Shapes); ok {
		return x.Shapes
	}
	return nil
}

type isOp_Op interface {
	isOp_Op()
}

type Op_Cloud struct {
	Cloud *Cloud `protobuf:"bytes,2,opt,name=cloud,proto3,oneof"`
}

type Op_Hosts struct {
	Hosts *Hosts `protobuf:"bytes,3,opt,name=hosts,proto3,oneof"`
}

type Op_Auth struct {
	Auth *Auth `protobuf:"bytes,4,opt,name=auth,proto3,oneof"`
}

type Op_Shapes struct {
	Shapes *Shapes `protobuf:"bytes,5,opt,name=shapes,proto3,oneof"`
}

func (*Op_Cloud) isOp_Op() {}

func (*Op_Hosts) isOp_Op() {}

func (*Op_Auth) isOp_Op() {}

func (*Op_Shapes) isOp_Op() {}

// Cloud
type Cloud struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Op:
	//
	//	*Cloud_Domain
	//	*Cloud_P2P
	Op isCloud_Op `protobuf_oneof:"op"`
}

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

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

func (*Cloud) ProtoMessage() {}

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

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

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

func (x *Cloud) GetDomain() *Domain {
	if x, ok := x.GetOp().(*Cloud_Domain); ok {
		return x.Domain
	}
	return nil
}

func (x *Cloud) GetP2P() *P2P {
	if x, ok := x.GetOp().(*Cloud_P2P); ok {
		return x.P2P
	}
	return nil
}

type isCloud_Op interface {
	isCloud_Op()
}

type Cloud_Domain struct {
	Domain *Domain `protobuf:"bytes,2,opt,name=domain,proto3,oneof"`
}

type Cloud_P2P struct {
	P2P *P2P `protobuf:"bytes,3,opt,name=p2p,proto3,oneof"`
}

func (*Cloud_Domain) isCloud_Op() {}

func (*Cloud_P2P) isCloud_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*Domain_Root
	//	*Domain_Generated
	//	*Domain_Validation
	Op isDomain_Op `protobuf_oneof:"op"`
}

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

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

func (*Domain) ProtoMessage() {}

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

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

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

func (x *Domain) GetRoot() *StringOp {
	if x, ok := x.GetOp().(*Domain_Root); ok {
		return x.Root
	}
	return nil
}

func (x *Domain) GetGenerated() *StringOp {
	if x, ok := x.GetOp().(*Domain_Generated); ok {
		return x.Generated
	}
	return nil
}

func (x *Domain) GetValidation() *Validation {
	if x, ok := x.GetOp().(*Domain_Validation); ok {
		return x.Validation
	}
	return nil
}

type isDomain_Op interface {
	isDomain_Op()
}

type Domain_Root struct {
	Root *StringOp `protobuf:"bytes,1,opt,name=root,proto3,oneof"`
}

type Domain_Generated struct {
	Generated *StringOp `protobuf:"bytes,2,opt,name=generated,proto3,oneof"`
}

type Domain_Validation struct {
	Validation *Validation `protobuf:"bytes,3,opt,name=validation,proto3,oneof"`
}

func (*Domain_Root) isDomain_Op() {}

func (*Domain_Generated) isDomain_Op() {}

func (*Domain_Validation) isDomain_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*Validation_Keys
	//	*Validation_Generate
	Op isValidation_Op `protobuf_oneof:"op"`
}

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

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

func (*Validation) ProtoMessage() {}

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

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

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

func (x *Validation) GetKeys() *ValidationKeys {
	if x, ok := x.GetOp().(*Validation_Keys); ok {
		return x.Keys
	}
	return nil
}

func (x *Validation) GetGenerate() bool {
	if x, ok := x.GetOp().(*Validation_Generate); ok {
		return x.Generate
	}
	return false
}

type isValidation_Op interface {
	isValidation_Op()
}

type Validation_Keys struct {
	Keys *ValidationKeys `protobuf:"bytes,1,opt,name=keys,proto3,oneof"`
}

type Validation_Generate struct {
	Generate bool `protobuf:"varint,2,opt,name=generate,proto3,oneof"`
}

func (*Validation_Keys) isValidation_Op() {}

func (*Validation_Generate) isValidation_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*ValidationKeys_Path
	//	*ValidationKeys_Data
	Op isValidationKeys_Op `protobuf_oneof:"op"`
}

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

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

func (*ValidationKeys) ProtoMessage() {}

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

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

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

func (x *ValidationKeys) GetPath() *ValidationKeysPath {
	if x, ok := x.GetOp().(*ValidationKeys_Path); ok {
		return x.Path
	}
	return nil
}

func (x *ValidationKeys) GetData() *ValidationKeysData {
	if x, ok := x.GetOp().(*ValidationKeys_Data); ok {
		return x.Data
	}
	return nil
}

type isValidationKeys_Op interface {
	isValidationKeys_Op()
}

type ValidationKeys_Path struct {
	Path *ValidationKeysPath `protobuf:"bytes,1,opt,name=path,proto3,oneof"`
}

type ValidationKeys_Data struct {
	Data *ValidationKeysData `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*ValidationKeys_Path) isValidationKeys_Op() {}

func (*ValidationKeys_Data) isValidationKeys_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*ValidationKeysPath_PrivateKey
	//	*ValidationKeysPath_PublicKey
	Op isValidationKeysPath_Op `protobuf_oneof:"op"`
}

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

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

func (*ValidationKeysPath) ProtoMessage() {}

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

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

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

func (x *ValidationKeysPath) GetPrivateKey() *StringOp {
	if x, ok := x.GetOp().(*ValidationKeysPath_PrivateKey); ok {
		return x.PrivateKey
	}
	return nil
}

func (x *ValidationKeysPath) GetPublicKey() *StringOp {
	if x, ok := x.GetOp().(*ValidationKeysPath_PublicKey); ok {
		return x.PublicKey
	}
	return nil
}

type isValidationKeysPath_Op interface {
	isValidationKeysPath_Op()
}

type ValidationKeysPath_PrivateKey struct {
	PrivateKey *StringOp `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3,oneof"`
}

type ValidationKeysPath_PublicKey struct {
	PublicKey *StringOp `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3,oneof"`
}

func (*ValidationKeysPath_PrivateKey) isValidationKeysPath_Op() {}

func (*ValidationKeysPath_PublicKey) isValidationKeysPath_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*ValidationKeysData_PrivateKey
	//	*ValidationKeysData_PublicKey
	Op isValidationKeysData_Op `protobuf_oneof:"op"`
}

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

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

func (*ValidationKeysData) ProtoMessage() {}

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

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

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

func (x *ValidationKeysData) GetPrivateKey() *BytesOp {
	if x, ok := x.GetOp().(*ValidationKeysData_PrivateKey); ok {
		return x.PrivateKey
	}
	return nil
}

func (x *ValidationKeysData) GetPublicKey() *BytesOp {
	if x, ok := x.GetOp().(*ValidationKeysData_PublicKey); ok {
		return x.PublicKey
	}
	return nil
}

type isValidationKeysData_Op interface {
	isValidationKeysData_Op()
}

type ValidationKeysData_PrivateKey struct {
	PrivateKey *BytesOp `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3,oneof"`
}

type ValidationKeysData_PublicKey struct {
	PublicKey *BytesOp `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3,oneof"`
}

func (*ValidationKeysData_PrivateKey) isValidationKeysData_Op() {}

func (*ValidationKeysData_PublicKey) isValidationKeysData_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*P2P_Bootstrap
	//	*P2P_Swarm
	Op isP2P_Op `protobuf_oneof:"op"`
}

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

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

func (*P2P) ProtoMessage() {}

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

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

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

func (x *P2P) GetBootstrap() *Bootstrap {
	if x, ok := x.GetOp().(*P2P_Bootstrap); ok {
		return x.Bootstrap
	}
	return nil
}

func (x *P2P) GetSwarm() *Swarm {
	if x, ok := x.GetOp().(*P2P_Swarm); ok {
		return x.Swarm
	}
	return nil
}

type isP2P_Op interface {
	isP2P_Op()
}

type P2P_Bootstrap struct {
	Bootstrap *Bootstrap `protobuf:"bytes,1,opt,name=bootstrap,proto3,oneof"`
}

type P2P_Swarm struct {
	Swarm *Swarm `protobuf:"bytes,2,opt,name=swarm,proto3,oneof"`
}

func (*P2P_Bootstrap) isP2P_Op() {}

func (*P2P_Swarm) isP2P_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*Bootstrap_Select
	//	*Bootstrap_List
	Op isBootstrap_Op `protobuf_oneof:"op"`
}

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

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

func (*Bootstrap) ProtoMessage() {}

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

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

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

func (x *Bootstrap) GetSelect() *BootstrapShape {
	if x, ok := x.GetOp().(*Bootstrap_Select); ok {
		return x.Select
	}
	return nil
}

func (x *Bootstrap) GetList() bool {
	if x, ok := x.GetOp().(*Bootstrap_List); ok {
		return x.List
	}
	return false
}

type isBootstrap_Op interface {
	isBootstrap_Op()
}

type Bootstrap_Select struct {
	Select *BootstrapShape `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type Bootstrap_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*Bootstrap_Select) isBootstrap_Op() {}

func (*Bootstrap_List) isBootstrap_Op() {}

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

	Shape string `protobuf:"bytes,1,opt,name=shape,proto3" json:"shape,omitempty"`
	// Types that are assignable to Op:
	//
	//	*BootstrapShape_Nodes
	//	*BootstrapShape_Delete
	Op isBootstrapShape_Op `protobuf_oneof:"op"`
}

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

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

func (*BootstrapShape) ProtoMessage() {}

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

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

func (x *BootstrapShape) GetShape() string {
	if x != nil {
		return x.Shape
	}
	return ""
}

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

func (x *BootstrapShape) GetNodes() *StringSliceOp {
	if x, ok := x.GetOp().(*BootstrapShape_Nodes); ok {
		return x.Nodes
	}
	return nil
}

func (x *BootstrapShape) GetDelete() bool {
	if x, ok := x.GetOp().(*BootstrapShape_Delete); ok {
		return x.Delete
	}
	return false
}

type isBootstrapShape_Op interface {
	isBootstrapShape_Op()
}

type BootstrapShape_Nodes struct {
	Nodes *StringSliceOp `protobuf:"bytes,2,opt,name=nodes,proto3,oneof"`
}

type BootstrapShape_Delete struct {
	Delete bool `protobuf:"varint,3,opt,name=delete,proto3,oneof"`
}

func (*BootstrapShape_Nodes) isBootstrapShape_Op() {}

func (*BootstrapShape_Delete) isBootstrapShape_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*Swarm_Key
	//	*Swarm_Generate
	Op isSwarm_Op `protobuf_oneof:"op"`
}

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

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

func (*Swarm) ProtoMessage() {}

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

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

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

func (x *Swarm) GetKey() *SwarmKey {
	if x, ok := x.GetOp().(*Swarm_Key); ok {
		return x.Key
	}
	return nil
}

func (x *Swarm) GetGenerate() bool {
	if x, ok := x.GetOp().(*Swarm_Generate); ok {
		return x.Generate
	}
	return false
}

type isSwarm_Op interface {
	isSwarm_Op()
}

type Swarm_Key struct {
	Key *SwarmKey `protobuf:"bytes,1,opt,name=key,proto3,oneof"`
}

type Swarm_Generate struct {
	Generate bool `protobuf:"varint,2,opt,name=generate,proto3,oneof"`
}

func (*Swarm_Key) isSwarm_Op() {}

func (*Swarm_Generate) isSwarm_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*SwarmKey_Path
	//	*SwarmKey_Data
	Op isSwarmKey_Op `protobuf_oneof:"op"`
}

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

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

func (*SwarmKey) ProtoMessage() {}

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

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

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

func (x *SwarmKey) GetPath() *StringOp {
	if x, ok := x.GetOp().(*SwarmKey_Path); ok {
		return x.Path
	}
	return nil
}

func (x *SwarmKey) GetData() *BytesOp {
	if x, ok := x.GetOp().(*SwarmKey_Data); ok {
		return x.Data
	}
	return nil
}

type isSwarmKey_Op interface {
	isSwarmKey_Op()
}

type SwarmKey_Path struct {
	Path *StringOp `protobuf:"bytes,1,opt,name=path,proto3,oneof"`
}

type SwarmKey_Data struct {
	Data *BytesOp `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*SwarmKey_Path) isSwarmKey_Op() {}

func (*SwarmKey_Data) isSwarmKey_Op() {}

// Hosts
type Hosts struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Op:
	//
	//	*Hosts_Select
	//	*Hosts_List
	Op isHosts_Op `protobuf_oneof:"op"`
}

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

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

func (*Hosts) ProtoMessage() {}

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

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

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

func (x *Hosts) GetSelect() *Host {
	if x, ok := x.GetOp().(*Hosts_Select); ok {
		return x.Select
	}
	return nil
}

func (x *Hosts) GetList() bool {
	if x, ok := x.GetOp().(*Hosts_List); ok {
		return x.List
	}
	return false
}

type isHosts_Op interface {
	isHosts_Op()
}

type Hosts_Select struct {
	Select *Host `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type Hosts_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*Hosts_Select) isHosts_Op() {}

func (*Hosts_List) isHosts_Op() {}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Host_Addresses
	//	*Host_Ssh
	//	*Host_Location
	//	*Host_Shapes
	//	*Host_Delete
	Op isHost_Op `protobuf_oneof:"op"`
}

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

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

func (*Host) ProtoMessage() {}

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

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

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

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

func (x *Host) GetAddresses() *StringSliceOp {
	if x, ok := x.GetOp().(*Host_Addresses); ok {
		return x.Addresses
	}
	return nil
}

func (x *Host) GetSsh() *SSH {
	if x, ok := x.GetOp().(*Host_Ssh); ok {
		return x.Ssh
	}
	return nil
}

func (x *Host) GetLocation() *StringOp {
	if x, ok := x.GetOp().(*Host_Location); ok {
		return x.Location
	}
	return nil
}

func (x *Host) GetShapes() *HostShapes {
	if x, ok := x.GetOp().(*Host_Shapes); ok {
		return x.Shapes
	}
	return nil
}

func (x *Host) GetDelete() bool {
	if x, ok := x.GetOp().(*Host_Delete); ok {
		return x.Delete
	}
	return false
}

type isHost_Op interface {
	isHost_Op()
}

type Host_Addresses struct {
	Addresses *StringSliceOp `protobuf:"bytes,2,opt,name=addresses,proto3,oneof"`
}

type Host_Ssh struct {
	Ssh *SSH `protobuf:"bytes,3,opt,name=ssh,proto3,oneof"`
}

type Host_Location struct {
	Location *StringOp `protobuf:"bytes,4,opt,name=location,proto3,oneof"` // comma separated
}

type Host_Shapes struct {
	Shapes *HostShapes `protobuf:"bytes,5,opt,name=shapes,proto3,oneof"`
}

type Host_Delete struct {
	Delete bool `protobuf:"varint,6,opt,name=delete,proto3,oneof"`
}

func (*Host_Addresses) isHost_Op() {}

func (*Host_Ssh) isHost_Op() {}

func (*Host_Location) isHost_Op() {}

func (*Host_Shapes) isHost_Op() {}

func (*Host_Delete) isHost_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*SSH_Address
	//	*SSH_Auth
	Op isSSH_Op `protobuf_oneof:"op"`
}

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

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

func (*SSH) ProtoMessage() {}

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

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

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

func (x *SSH) GetAddress() *StringOp {
	if x, ok := x.GetOp().(*SSH_Address); ok {
		return x.Address
	}
	return nil
}

func (x *SSH) GetAuth() *StringSliceOp {
	if x, ok := x.GetOp().(*SSH_Auth); ok {
		return x.Auth
	}
	return nil
}

type isSSH_Op interface {
	isSSH_Op()
}

type SSH_Address struct {
	Address *StringOp `protobuf:"bytes,1,opt,name=address,proto3,oneof"` // addr:port
}

type SSH_Auth struct {
	Auth *StringSliceOp `protobuf:"bytes,2,opt,name=auth,proto3,oneof"`
}

func (*SSH_Address) isSSH_Op() {}

func (*SSH_Auth) isSSH_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*HostShapes_Select
	//	*HostShapes_List
	Op isHostShapes_Op `protobuf_oneof:"op"`
}

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

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

func (*HostShapes) ProtoMessage() {}

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

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

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

func (x *HostShapes) GetSelect() *HostShape {
	if x, ok := x.GetOp().(*HostShapes_Select); ok {
		return x.Select
	}
	return nil
}

func (x *HostShapes) GetList() bool {
	if x, ok := x.GetOp().(*HostShapes_List); ok {
		return x.List
	}
	return false
}

type isHostShapes_Op interface {
	isHostShapes_Op()
}

type HostShapes_Select struct {
	Select *HostShape `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type HostShapes_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*HostShapes_Select) isHostShapes_Op() {}

func (*HostShapes_List) isHostShapes_Op() {}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to Op:
	//
	//	*HostShape_Select
	//	*HostShape_Delete
	Op isHostShape_Op `protobuf_oneof:"op"`
}

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

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

func (*HostShape) ProtoMessage() {}

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

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

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

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

func (x *HostShape) GetSelect() *HostInstance {
	if x, ok := x.GetOp().(*HostShape_Select); ok {
		return x.Select
	}
	return nil
}

func (x *HostShape) GetDelete() bool {
	if x, ok := x.GetOp().(*HostShape_Delete); ok {
		return x.Delete
	}
	return false
}

type isHostShape_Op interface {
	isHostShape_Op()
}

type HostShape_Select struct {
	Select *HostInstance `protobuf:"bytes,2,opt,name=select,proto3,oneof"`
}

type HostShape_Delete struct {
	Delete bool `protobuf:"varint,3,opt,name=delete,proto3,oneof"`
}

func (*HostShape_Select) isHostShape_Op() {}

func (*HostShape_Delete) isHostShape_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*HostInstance_Id
	//	*HostInstance_Key
	//	*HostInstance_Generate
	Op isHostInstance_Op `protobuf_oneof:"op"`
}

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

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

func (*HostInstance) ProtoMessage() {}

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

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

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

func (x *HostInstance) GetId() bool {
	if x, ok := x.GetOp().(*HostInstance_Id); ok {
		return x.Id
	}
	return false
}

func (x *HostInstance) GetKey() *StringOp {
	if x, ok := x.GetOp().(*HostInstance_Key); ok {
		return x.Key
	}
	return nil
}

func (x *HostInstance) GetGenerate() bool {
	if x, ok := x.GetOp().(*HostInstance_Generate); ok {
		return x.Generate
	}
	return false
}

type isHostInstance_Op interface {
	isHostInstance_Op()
}

type HostInstance_Id struct {
	Id bool `protobuf:"varint,1,opt,name=id,proto3,oneof"`
}

type HostInstance_Key struct {
	Key *StringOp `protobuf:"bytes,2,opt,name=key,proto3,oneof"`
}

type HostInstance_Generate struct {
	Generate bool `protobuf:"varint,3,opt,name=generate,proto3,oneof"`
}

func (*HostInstance_Id) isHostInstance_Op() {}

func (*HostInstance_Key) isHostInstance_Op() {}

func (*HostInstance_Generate) isHostInstance_Op() {}

// Auth
type Auth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Op:
	//
	//	*Auth_Select
	//	*Auth_List
	Op isAuth_Op `protobuf_oneof:"op"`
}

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

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

func (*Auth) ProtoMessage() {}

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

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

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

func (x *Auth) GetSelect() *Signer {
	if x, ok := x.GetOp().(*Auth_Select); ok {
		return x.Select
	}
	return nil
}

func (x *Auth) GetList() bool {
	if x, ok := x.GetOp().(*Auth_List); ok {
		return x.List
	}
	return false
}

type isAuth_Op interface {
	isAuth_Op()
}

type Auth_Select struct {
	Select *Signer `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type Auth_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*Auth_Select) isAuth_Op() {}

func (*Auth_List) isAuth_Op() {}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Signer_Username
	//	*Signer_Password
	//	*Signer_Key
	//	*Signer_Delete
	Op isSigner_Op `protobuf_oneof:"op"`
}

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

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

func (*Signer) ProtoMessage() {}

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

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

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

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

func (x *Signer) GetUsername() *StringOp {
	if x, ok := x.GetOp().(*Signer_Username); ok {
		return x.Username
	}
	return nil
}

func (x *Signer) GetPassword() *StringOp {
	if x, ok := x.GetOp().(*Signer_Password); ok {
		return x.Password
	}
	return nil
}

func (x *Signer) GetKey() *SSHKey {
	if x, ok := x.GetOp().(*Signer_Key); ok {
		return x.Key
	}
	return nil
}

func (x *Signer) GetDelete() bool {
	if x, ok := x.GetOp().(*Signer_Delete); ok {
		return x.Delete
	}
	return false
}

type isSigner_Op interface {
	isSigner_Op()
}

type Signer_Username struct {
	Username *StringOp `protobuf:"bytes,2,opt,name=username,proto3,oneof"`
}

type Signer_Password struct {
	Password *StringOp `protobuf:"bytes,3,opt,name=password,proto3,oneof"`
}

type Signer_Key struct {
	Key *SSHKey `protobuf:"bytes,4,opt,name=key,proto3,oneof"`
}

type Signer_Delete struct {
	Delete bool `protobuf:"varint,5,opt,name=delete,proto3,oneof"`
}

func (*Signer_Username) isSigner_Op() {}

func (*Signer_Password) isSigner_Op() {}

func (*Signer_Key) isSigner_Op() {}

func (*Signer_Delete) isSigner_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*SSHKey_Path
	//	*SSHKey_Data
	Op isSSHKey_Op `protobuf_oneof:"op"`
}

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

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

func (*SSHKey) ProtoMessage() {}

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

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

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

func (x *SSHKey) GetPath() *StringOp {
	if x, ok := x.GetOp().(*SSHKey_Path); ok {
		return x.Path
	}
	return nil
}

func (x *SSHKey) GetData() *BytesOp {
	if x, ok := x.GetOp().(*SSHKey_Data); ok {
		return x.Data
	}
	return nil
}

type isSSHKey_Op interface {
	isSSHKey_Op()
}

type SSHKey_Path struct {
	Path *StringOp `protobuf:"bytes,1,opt,name=path,proto3,oneof"`
}

type SSHKey_Data struct {
	Data *BytesOp `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*SSHKey_Path) isSSHKey_Op() {}

func (*SSHKey_Data) isSSHKey_Op() {}

// Shapes
type Shapes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Op:
	//
	//	*Shapes_Select
	//	*Shapes_List
	Op isShapes_Op `protobuf_oneof:"op"`
}

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

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

func (*Shapes) ProtoMessage() {}

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

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

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

func (x *Shapes) GetSelect() *Shape {
	if x, ok := x.GetOp().(*Shapes_Select); ok {
		return x.Select
	}
	return nil
}

func (x *Shapes) GetList() bool {
	if x, ok := x.GetOp().(*Shapes_List); ok {
		return x.List
	}
	return false
}

type isShapes_Op interface {
	isShapes_Op()
}

type Shapes_Select struct {
	Select *Shape `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type Shapes_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*Shapes_Select) isShapes_Op() {}

func (*Shapes_List) isShapes_Op() {}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Shape_Services
	//	*Shape_Ports
	//	*Shape_Plugins
	//	*Shape_Delete
	Op isShape_Op `protobuf_oneof:"op"`
}

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

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

func (*Shape) ProtoMessage() {}

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

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

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

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

func (x *Shape) GetServices() *StringSliceOp {
	if x, ok := x.GetOp().(*Shape_Services); ok {
		return x.Services
	}
	return nil
}

func (x *Shape) GetPorts() *Ports {
	if x, ok := x.GetOp().(*Shape_Ports); ok {
		return x.Ports
	}
	return nil
}

func (x *Shape) GetPlugins() *StringSliceOp {
	if x, ok := x.GetOp().(*Shape_Plugins); ok {
		return x.Plugins
	}
	return nil
}

func (x *Shape) GetDelete() bool {
	if x, ok := x.GetOp().(*Shape_Delete); ok {
		return x.Delete
	}
	return false
}

type isShape_Op interface {
	isShape_Op()
}

type Shape_Services struct {
	Services *StringSliceOp `protobuf:"bytes,2,opt,name=services,proto3,oneof"`
}

type Shape_Ports struct {
	Ports *Ports `protobuf:"bytes,3,opt,name=ports,proto3,oneof"`
}

type Shape_Plugins struct {
	Plugins *StringSliceOp `protobuf:"bytes,4,opt,name=plugins,proto3,oneof"`
}

type Shape_Delete struct {
	Delete bool `protobuf:"varint,5,opt,name=delete,proto3,oneof"`
}

func (*Shape_Services) isShape_Op() {}

func (*Shape_Ports) isShape_Op() {}

func (*Shape_Plugins) isShape_Op() {}

func (*Shape_Delete) isShape_Op() {}

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

	// Types that are assignable to Op:
	//
	//	*Ports_Select
	//	*Ports_List
	Op isPorts_Op `protobuf_oneof:"op"`
}

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

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

func (*Ports) ProtoMessage() {}

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

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

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

func (x *Ports) GetSelect() *Port {
	if x, ok := x.GetOp().(*Ports_Select); ok {
		return x.Select
	}
	return nil
}

func (x *Ports) GetList() bool {
	if x, ok := x.GetOp().(*Ports_List); ok {
		return x.List
	}
	return false
}

type isPorts_Op interface {
	isPorts_Op()
}

type Ports_Select struct {
	Select *Port `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}

type Ports_List struct {
	List bool `protobuf:"varint,2,opt,name=list,proto3,oneof"`
}

func (*Ports_Select) isPorts_Op() {}

func (*Ports_List) isPorts_Op() {}

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

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are assignable to Op:
	//
	//	*Port_Set
	//	*Port_Get
	//	*Port_Delete
	Op isPort_Op `protobuf_oneof:"op"`
}

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

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

func (*Port) ProtoMessage() {}

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

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

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

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

func (x *Port) GetSet() uint64 {
	if x, ok := x.GetOp().(*Port_Set); ok {
		return x.Set
	}
	return 0
}

func (x *Port) GetGet() bool {
	if x, ok := x.GetOp().(*Port_Get); ok {
		return x.Get
	}
	return false
}

func (x *Port) GetDelete() bool {
	if x, ok := x.GetOp().(*Port_Delete); ok {
		return x.Delete
	}
	return false
}

type isPort_Op interface {
	isPort_Op()
}

type Port_Set struct {
	Set uint64 `protobuf:"varint,2,opt,name=set,proto3,oneof"`
}

type Port_Get struct {
	Get bool `protobuf:"varint,3,opt,name=get,proto3,oneof"`
}

type Port_Delete struct {
	Delete bool `protobuf:"varint,4,opt,name=delete,proto3,oneof"`
}

func (*Port_Set) isPort_Op() {}

func (*Port_Get) isPort_Op() {}

func (*Port_Delete) isPort_Op() {}

var File_config_v1_config_proto protoreflect.FileDescriptor

var file_config_v1_config_proto_rawDesc = []byte{
	0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x76, 0x31, 0x22, 0x30, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f,
	0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x44, 0x0a, 0x0c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55,
	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x14, 0x0a,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x18, 0x0a, 0x06, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12,
	0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x05,
	0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63,
	0x68, 0x75, 0x6e, 0x6b, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x38, 0x0a, 0x08,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03,
	0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74,
	0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x37, 0x0a, 0x07, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4f,
	0x70, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00,
	0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22,
	0xcd, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x4f,
	0x70, 0x12, 0x2a, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x2a, 0x0a,
	0x03, 0x61, 0x64, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69,
	0x63, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x64, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x63,
	0x65, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x63,
	0x6c, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c,
	0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22,
	0x6e, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x4f, 0x70, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x70, 0x48, 0x00, 0x52,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22,
	0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x22, 0x35, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a,
	0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5c, 0x0a, 0x0c, 0x42,
	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x22, 0x92, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x28, 0x0a,
	0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00,
	0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x63,
	0x65, 0x12, 0x16, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c,
	0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x06, 0x75, 0x69, 0x6e,
	0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x75, 0x69, 0x6e,
	0x74, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x05, 0x66,
	0x6c, 0x6f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c,
	0x6f, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a,
	0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0xdd, 0x01, 0x0a, 0x02, 0x4f, 0x70, 0x12, 0x29,
	0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x48,
	0x6f, 0x73, 0x74, 0x73, 0x48, 0x00, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x25, 0x0a,
	0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x48, 0x00, 0x52, 0x04,
	0x61, 0x75, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65,
	0x73, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x5e, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x75, 0x64,
	0x12, 0x2b, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a,
	0x03, 0x70, 0x32, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x32, 0x50, 0x48, 0x00, 0x52, 0x03, 0x70, 0x32,
	0x70, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61,
	0x69, 0x6e, 0x12, 0x29, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x33, 0x0a,
	0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
	0x65, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
	0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
	0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x0a, 0x02, 0x6f,
	0x70, 0x22, 0x61, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x2f, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73,
	0x12, 0x1c, 0x0a, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x04,
	0x0a, 0x02, 0x6f, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76,
	0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73,
	0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x4b, 0x65, 0x79, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x36,
	0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76,
	0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48,
	0x00, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x04, 0x0a, 0x02,
	0x6f, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x4b, 0x65, 0x79, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x69,
	0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73,
	0x4f, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79,
	0x12, 0x33, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31,
	0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c,
	0x69, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x6b, 0x0a, 0x03, 0x50,
	0x32, 0x50, 0x12, 0x34, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76,
	0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09, 0x62,
	0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x77, 0x61, 0x72,
	0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x77, 0x61,
	0x72, 0x6d, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x5c, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x74,
	0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76,
	0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x53, 0x68, 0x61, 0x70, 0x65,
	0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x6c, 0x69,
	0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
	0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x78, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74,
	0x72, 0x61, 0x70, 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x12, 0x30,
	0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x53, 0x6c, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73,
	0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70,
	0x22, 0x54, 0x0a, 0x05, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x12, 0x27, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x1c, 0x0a, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
	0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x65, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x4b,
	0x65, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x70, 0x48,
	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x4e, 0x0a,
	0x05, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
	0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x12, 0x14, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48,
	0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0xfc, 0x01,
	0x0a, 0x04, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x53, 0x6c, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x03, 0x73, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x53,
	0x48, 0x48, 0x00, 0x52, 0x03, 0x73, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48,
	0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73,
	0x68, 0x61, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x70,
	0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x06,
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06,
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x6c, 0x0a, 0x03,
	0x53, 0x53, 0x48, 0x12, 0x2f, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04,
	0x61, 0x75, 0x74, 0x68, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x58, 0x0a, 0x0a, 0x48, 0x6f,
	0x73, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x48, 0x00,
	0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x04,
	0x0a, 0x02, 0x6f, 0x70, 0x22, 0x72, 0x0a, 0x09, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x70,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76,
	0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00,
	0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x6d, 0x0a, 0x0c, 0x48, 0x6f, 0x73, 0x74,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
	0x65, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12,
	0x2b, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e,
	0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x04,
	0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69,
	0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x06, 0x53, 0x69, 0x67,
	0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x48, 0x00,
	0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f,
	0x70, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x04,
	0x0a, 0x02, 0x6f, 0x70, 0x22, 0x63, 0x0a, 0x06, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x12, 0x29,
	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4f,
	0x70, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0x50, 0x0a, 0x06, 0x53, 0x68, 0x61,
	0x70, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x68, 0x61, 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12,
	0x14, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,
	0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x22, 0xd3, 0x01, 0x0a, 0x05,
	0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x6c,
	0x69, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x73, 0x12, 0x28, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72,
	0x74, 0x73, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x70,
	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53,
	0x6c, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
	0x73, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x04, 0x0a, 0x02, 0x6f,
	0x70, 0x22, 0x4e, 0x0a, 0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x65,
	0x6c, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73,
	0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f,
	0x70, 0x22, 0x62, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
	0x03, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65,
	0x74, 0x12, 0x12, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
	0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42,
	0x04, 0x0a, 0x02, 0x6f, 0x70, 0x2a, 0x2c, 0x0a, 0x0a, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x5a, 0x49,
	0x50, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x41,
	0x52, 0x10, 0x01, 0x32, 0xdf, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11,
	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x11, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x36, 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f,
	0x61, 0x64, 0x1a, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x28, 0x01, 0x12, 0x38, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e,
	0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x30,
	0x01, 0x12, 0x2d, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x11, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x10,
	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
	0x12, 0x2b, 0x0a, 0x04, 0x46, 0x72, 0x65, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x10, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x26, 0x0a,
	0x02, 0x44, 0x6f, 0x12, 0x0d, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e,
	0x4f, 0x70, 0x1a, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0xa6, 0x01, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50,
	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x75, 0x62, 0x79, 0x74, 0x65, 0x2f, 0x74, 0x61, 0x75, 0x2f, 0x70,
	0x6b, 0x67, 0x2f, 0x73, 0x70, 0x6f, 0x72, 0x65, 0x2d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
	0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x58,
	0x58, 0xaa, 0x02, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x09,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0xea, 0x02, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_config_v1_config_proto_rawDescOnce sync.Once
	file_config_v1_config_proto_rawDescData = file_config_v1_config_proto_rawDesc
)

func file_config_v1_config_proto_rawDescGZIP() []byte {
	file_config_v1_config_proto_rawDescOnce.Do(func() {
		file_config_v1_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_v1_config_proto_rawDescData)
	})
	return file_config_v1_config_proto_rawDescData
}

var file_config_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
var file_config_v1_config_proto_goTypes = []any{
	(BundleType)(0),            // 0: config.v1.BundleType
	(*Source)(nil),             // 1: config.v1.Source
	(*SourceUpload)(nil),       // 2: config.v1.SourceUpload
	(*Config)(nil),             // 3: config.v1.Config
	(*Bundle)(nil),             // 4: config.v1.Bundle
	(*StringOp)(nil),           // 5: config.v1.StringOp
	(*BytesOp)(nil),            // 6: config.v1.BytesOp
	(*StringSliceOp)(nil),      // 7: config.v1.StringSliceOp
	(*ReturnValue)(nil),        // 8: config.v1.ReturnValue
	(*StringSlice)(nil),        // 9: config.v1.StringSlice
	(*Error)(nil),              // 10: config.v1.Error
	(*BundleConfig)(nil),       // 11: config.v1.BundleConfig
	(*Empty)(nil),              // 12: config.v1.Empty
	(*Return)(nil),             // 13: config.v1.Return
	(*Op)(nil),                 // 14: config.v1.Op
	(*Cloud)(nil),              // 15: config.v1.Cloud
	(*Domain)(nil),             // 16: config.v1.Domain
	(*Validation)(nil),         // 17: config.v1.Validation
	(*ValidationKeys)(nil),     // 18: config.v1.ValidationKeys
	(*ValidationKeysPath)(nil), // 19: config.v1.ValidationKeysPath
	(*ValidationKeysData)(nil), // 20: config.v1.ValidationKeysData
	(*P2P)(nil),                // 21: config.v1.P2P
	(*Bootstrap)(nil),          // 22: config.v1.Bootstrap
	(*BootstrapShape)(nil),     // 23: config.v1.BootstrapShape
	(*Swarm)(nil),              // 24: config.v1.Swarm
	(*SwarmKey)(nil),           // 25: config.v1.SwarmKey
	(*Hosts)(nil),              // 26: config.v1.Hosts
	(*Host)(nil),               // 27: config.v1.Host
	(*SSH)(nil),                // 28: config.v1.SSH
	(*HostShapes)(nil),         // 29: config.v1.HostShapes
	(*HostShape)(nil),          // 30: config.v1.HostShape
	(*HostInstance)(nil),       // 31: config.v1.HostInstance
	(*Auth)(nil),               // 32: config.v1.Auth
	(*Signer)(nil),             // 33: config.v1.Signer
	(*SSHKey)(nil),             // 34: config.v1.SSHKey
	(*Shapes)(nil),             // 35: config.v1.Shapes
	(*Shape)(nil),              // 36: config.v1.Shape
	(*Ports)(nil),              // 37: config.v1.Ports
	(*Port)(nil),               // 38: config.v1.Port
}
var file_config_v1_config_proto_depIdxs = []int32{
	0,  // 0: config.v1.Bundle.type:type_name -> config.v1.BundleType
	9,  // 1: config.v1.StringSliceOp.set:type_name -> config.v1.StringSlice
	9,  // 2: config.v1.StringSliceOp.add:type_name -> config.v1.StringSlice
	9,  // 3: config.v1.StringSliceOp.delete:type_name -> config.v1.StringSlice
	5,  // 4: config.v1.ReturnValue.value:type_name -> config.v1.StringOp
	6,  // 5: config.v1.ReturnValue.data:type_name -> config.v1.BytesOp
	3,  // 6: config.v1.BundleConfig.id:type_name -> config.v1.Config
	0,  // 7: config.v1.BundleConfig.type:type_name -> config.v1.BundleType
	12, // 8: config.v1.Return.empty:type_name -> config.v1.Empty
	9,  // 9: config.v1.Return.slice:type_name -> config.v1.StringSlice
	10, // 10: config.v1.Return.error:type_name -> config.v1.Error
	3,  // 11: config.v1.Op.config:type_name -> config.v1.Config
	15, // 12: config.v1.Op.cloud:type_name -> config.v1.Cloud
	26, // 13: config.v1.Op.hosts:type_name -> config.v1.Hosts
	32, // 14: config.v1.Op.auth:type_name -> config.v1.Auth
	35, // 15: config.v1.Op.shapes:type_name -> config.v1.Shapes
	16, // 16: config.v1.Cloud.domain:type_name -> config.v1.Domain
	21, // 17: config.v1.Cloud.p2p:type_name -> config.v1.P2P
	5,  // 18: config.v1.Domain.root:type_name -> config.v1.StringOp
	5,  // 19: config.v1.Domain.generated:type_name -> config.v1.StringOp
	17, // 20: config.v1.Domain.validation:type_name -> config.v1.Validation
	18, // 21: config.v1.Validation.keys:type_name -> config.v1.ValidationKeys
	19, // 22: config.v1.ValidationKeys.path:type_name -> config.v1.ValidationKeysPath
	20, // 23: config.v1.ValidationKeys.data:type_name -> config.v1.ValidationKeysData
	5,  // 24: config.v1.ValidationKeysPath.private_key:type_name -> config.v1.StringOp
	5,  // 25: config.v1.ValidationKeysPath.public_key:type_name -> config.v1.StringOp
	6,  // 26: config.v1.ValidationKeysData.private_key:type_name -> config.v1.BytesOp
	6,  // 27: config.v1.ValidationKeysData.public_key:type_name -> config.v1.BytesOp
	22, // 28: config.v1.P2P.bootstrap:type_name -> config.v1.Bootstrap
	24, // 29: config.v1.P2P.swarm:type_name -> config.v1.Swarm
	23, // 30: config.v1.Bootstrap.select:type_name -> config.v1.BootstrapShape
	7,  // 31: config.v1.BootstrapShape.nodes:type_name -> config.v1.StringSliceOp
	25, // 32: config.v1.Swarm.key:type_name -> config.v1.SwarmKey
	5,  // 33: config.v1.SwarmKey.path:type_name -> config.v1.StringOp
	6,  // 34: config.v1.SwarmKey.data:type_name -> config.v1.BytesOp
	27, // 35: config.v1.Hosts.select:type_name -> config.v1.Host
	7,  // 36: config.v1.Host.addresses:type_name -> config.v1.StringSliceOp
	28, // 37: config.v1.Host.ssh:type_name -> config.v1.SSH
	5,  // 38: config.v1.Host.location:type_name -> config.v1.StringOp
	29, // 39: config.v1.Host.shapes:type_name -> config.v1.HostShapes
	5,  // 40: config.v1.SSH.address:type_name -> config.v1.StringOp
	7,  // 41: config.v1.SSH.auth:type_name -> config.v1.StringSliceOp
	30, // 42: config.v1.HostShapes.select:type_name -> config.v1.HostShape
	31, // 43: config.v1.HostShape.select:type_name -> config.v1.HostInstance
	5,  // 44: config.v1.HostInstance.key:type_name -> config.v1.StringOp
	33, // 45: config.v1.Auth.select:type_name -> config.v1.Signer
	5,  // 46: config.v1.Signer.username:type_name -> config.v1.StringOp
	5,  // 47: config.v1.Signer.password:type_name -> config.v1.StringOp
	34, // 48: config.v1.Signer.key:type_name -> config.v1.SSHKey
	5,  // 49: config.v1.SSHKey.path:type_name -> config.v1.StringOp
	6,  // 50: config.v1.SSHKey.data:type_name -> config.v1.BytesOp
	36, // 51: config.v1.Shapes.select:type_name -> config.v1.Shape
	7,  // 52: config.v1.Shape.services:type_name -> config.v1.StringSliceOp
	37, // 53: config.v1.Shape.ports:type_name -> config.v1.Ports
	7,  // 54: config.v1.Shape.plugins:type_name -> config.v1.StringSliceOp
	38, // 55: config.v1.Ports.select:type_name -> config.v1.Port
	12, // 56: config.v1.ConfigService.New:input_type -> config.v1.Empty
	1,  // 57: config.v1.ConfigService.Load:input_type -> config.v1.Source
	2,  // 58: config.v1.ConfigService.Upload:input_type -> config.v1.SourceUpload
	11, // 59: config.v1.ConfigService.Download:input_type -> config.v1.BundleConfig
	3,  // 60: config.v1.ConfigService.Commit:input_type -> config.v1.Config
	3,  // 61: config.v1.ConfigService.Free:input_type -> config.v1.Config
	14, // 62: config.v1.ConfigService.Do:input_type -> config.v1.Op
	3,  // 63: config.v1.ConfigService.New:output_type -> config.v1.Config
	3,  // 64: config.v1.ConfigService.Load:output_type -> config.v1.Config
	3,  // 65: config.v1.ConfigService.Upload:output_type -> config.v1.Config
	4,  // 66: config.v1.ConfigService.Download:output_type -> config.v1.Bundle
	12, // 67: config.v1.ConfigService.Commit:output_type -> config.v1.Empty
	12, // 68: config.v1.ConfigService.Free:output_type -> config.v1.Empty
	13, // 69: config.v1.ConfigService.Do:output_type -> config.v1.Return
	63, // [63:70] is the sub-list for method output_type
	56, // [56:63] is the sub-list for method input_type
	56, // [56:56] is the sub-list for extension type_name
	56, // [56:56] is the sub-list for extension extendee
	0,  // [0:56] is the sub-list for field type_name
}

func init() { file_config_v1_config_proto_init() }
func file_config_v1_config_proto_init() {
	if File_config_v1_config_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_config_v1_config_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*Source); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*SourceUpload); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*Config); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*Bundle); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*StringOp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*BytesOp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*StringSliceOp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*ReturnValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*StringSlice); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*BundleConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*Empty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*Return); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*Op); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*Cloud); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*Domain); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*Validation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*ValidationKeys); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*ValidationKeysPath); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*ValidationKeysData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*P2P); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*Bootstrap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*BootstrapShape); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*Swarm); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*SwarmKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*Hosts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*Host); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*SSH); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*HostShapes); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[29].Exporter = func(v any, i int) any {
			switch v := v.(*HostShape); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[30].Exporter = func(v any, i int) any {
			switch v := v.(*HostInstance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[31].Exporter = func(v any, i int) any {
			switch v := v.(*Auth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[32].Exporter = func(v any, i int) any {
			switch v := v.(*Signer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[33].Exporter = func(v any, i int) any {
			switch v := v.(*SSHKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[34].Exporter = func(v any, i int) any {
			switch v := v.(*Shapes); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[35].Exporter = func(v any, i int) any {
			switch v := v.(*Shape); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[36].Exporter = func(v any, i int) any {
			switch v := v.(*Ports); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_config_v1_config_proto_msgTypes[37].Exporter = func(v any, i int) any {
			switch v := v.(*Port); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_config_v1_config_proto_msgTypes[1].OneofWrappers = []any{
		(*SourceUpload_Chunk)(nil),
		(*SourceUpload_Path)(nil),
	}
	file_config_v1_config_proto_msgTypes[3].OneofWrappers = []any{
		(*Bundle_Type)(nil),
		(*Bundle_Chunk)(nil),
	}
	file_config_v1_config_proto_msgTypes[4].OneofWrappers = []any{
		(*StringOp_Set)(nil),
		(*StringOp_Get)(nil),
	}
	file_config_v1_config_proto_msgTypes[5].OneofWrappers = []any{
		(*BytesOp_Set)(nil),
		(*BytesOp_Get)(nil),
	}
	file_config_v1_config_proto_msgTypes[6].OneofWrappers = []any{
		(*StringSliceOp_Set)(nil),
		(*StringSliceOp_Add)(nil),
		(*StringSliceOp_Delete)(nil),
		(*StringSliceOp_Clear)(nil),
		(*StringSliceOp_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[7].OneofWrappers = []any{
		(*ReturnValue_Value)(nil),
		(*ReturnValue_Data)(nil),
	}
	file_config_v1_config_proto_msgTypes[12].OneofWrappers = []any{
		(*Return_Empty)(nil),
		(*Return_String_)(nil),
		(*Return_Slice)(nil),
		(*Return_Bytes)(nil),
		(*Return_Uint64)(nil),
		(*Return_Int64)(nil),
		(*Return_Float)(nil),
		(*Return_Error)(nil),
	}
	file_config_v1_config_proto_msgTypes[13].OneofWrappers = []any{
		(*Op_Cloud)(nil),
		(*Op_Hosts)(nil),
		(*Op_Auth)(nil),
		(*Op_Shapes)(nil),
	}
	file_config_v1_config_proto_msgTypes[14].OneofWrappers = []any{
		(*Cloud_Domain)(nil),
		(*Cloud_P2P)(nil),
	}
	file_config_v1_config_proto_msgTypes[15].OneofWrappers = []any{
		(*Domain_Root)(nil),
		(*Domain_Generated)(nil),
		(*Domain_Validation)(nil),
	}
	file_config_v1_config_proto_msgTypes[16].OneofWrappers = []any{
		(*Validation_Keys)(nil),
		(*Validation_Generate)(nil),
	}
	file_config_v1_config_proto_msgTypes[17].OneofWrappers = []any{
		(*ValidationKeys_Path)(nil),
		(*ValidationKeys_Data)(nil),
	}
	file_config_v1_config_proto_msgTypes[18].OneofWrappers = []any{
		(*ValidationKeysPath_PrivateKey)(nil),
		(*ValidationKeysPath_PublicKey)(nil),
	}
	file_config_v1_config_proto_msgTypes[19].OneofWrappers = []any{
		(*ValidationKeysData_PrivateKey)(nil),
		(*ValidationKeysData_PublicKey)(nil),
	}
	file_config_v1_config_proto_msgTypes[20].OneofWrappers = []any{
		(*P2P_Bootstrap)(nil),
		(*P2P_Swarm)(nil),
	}
	file_config_v1_config_proto_msgTypes[21].OneofWrappers = []any{
		(*Bootstrap_Select)(nil),
		(*Bootstrap_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[22].OneofWrappers = []any{
		(*BootstrapShape_Nodes)(nil),
		(*BootstrapShape_Delete)(nil),
	}
	file_config_v1_config_proto_msgTypes[23].OneofWrappers = []any{
		(*Swarm_Key)(nil),
		(*Swarm_Generate)(nil),
	}
	file_config_v1_config_proto_msgTypes[24].OneofWrappers = []any{
		(*SwarmKey_Path)(nil),
		(*SwarmKey_Data)(nil),
	}
	file_config_v1_config_proto_msgTypes[25].OneofWrappers = []any{
		(*Hosts_Select)(nil),
		(*Hosts_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[26].OneofWrappers = []any{
		(*Host_Addresses)(nil),
		(*Host_Ssh)(nil),
		(*Host_Location)(nil),
		(*Host_Shapes)(nil),
		(*Host_Delete)(nil),
	}
	file_config_v1_config_proto_msgTypes[27].OneofWrappers = []any{
		(*SSH_Address)(nil),
		(*SSH_Auth)(nil),
	}
	file_config_v1_config_proto_msgTypes[28].OneofWrappers = []any{
		(*HostShapes_Select)(nil),
		(*HostShapes_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[29].OneofWrappers = []any{
		(*HostShape_Select)(nil),
		(*HostShape_Delete)(nil),
	}
	file_config_v1_config_proto_msgTypes[30].OneofWrappers = []any{
		(*HostInstance_Id)(nil),
		(*HostInstance_Key)(nil),
		(*HostInstance_Generate)(nil),
	}
	file_config_v1_config_proto_msgTypes[31].OneofWrappers = []any{
		(*Auth_Select)(nil),
		(*Auth_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[32].OneofWrappers = []any{
		(*Signer_Username)(nil),
		(*Signer_Password)(nil),
		(*Signer_Key)(nil),
		(*Signer_Delete)(nil),
	}
	file_config_v1_config_proto_msgTypes[33].OneofWrappers = []any{
		(*SSHKey_Path)(nil),
		(*SSHKey_Data)(nil),
	}
	file_config_v1_config_proto_msgTypes[34].OneofWrappers = []any{
		(*Shapes_Select)(nil),
		(*Shapes_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[35].OneofWrappers = []any{
		(*Shape_Services)(nil),
		(*Shape_Ports)(nil),
		(*Shape_Plugins)(nil),
		(*Shape_Delete)(nil),
	}
	file_config_v1_config_proto_msgTypes[36].OneofWrappers = []any{
		(*Ports_Select)(nil),
		(*Ports_List)(nil),
	}
	file_config_v1_config_proto_msgTypes[37].OneofWrappers = []any{
		(*Port_Set)(nil),
		(*Port_Get)(nil),
		(*Port_Delete)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_config_v1_config_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   38,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_config_v1_config_proto_goTypes,
		DependencyIndexes: file_config_v1_config_proto_depIdxs,
		EnumInfos:         file_config_v1_config_proto_enumTypes,
		MessageInfos:      file_config_v1_config_proto_msgTypes,
	}.Build()
	File_config_v1_config_proto = out.File
	file_config_v1_config_proto_rawDesc = nil
	file_config_v1_config_proto_goTypes = nil
	file_config_v1_config_proto_depIdxs = nil
}
