// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.32.1
// source: proto/mcp/v1/mcp.proto

package mcpv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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 RouteSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`         // route name (used for $PORT_<NAME>)
	Port          int32                  `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`        // mc-proxy listener port (e.g. 443, 8443, 9443); NOT the container internal port
	Mode          string                 `protobuf:"bytes,3,opt,name=mode,proto3" json:"mode,omitempty"`         // "l4" or "l7"
	Hostname      string                 `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"` // optional public hostname override
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RouteSpec) ProtoMessage() {}

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

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

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

func (x *RouteSpec) GetPort() int32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *RouteSpec) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

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

type ComponentSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Image         string                 `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
	Network       string                 `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"`
	User          string                 `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
	Restart       string                 `protobuf:"bytes,5,opt,name=restart,proto3" json:"restart,omitempty"`
	Ports         []string               `protobuf:"bytes,6,rep,name=ports,proto3" json:"ports,omitempty"`
	Volumes       []string               `protobuf:"bytes,7,rep,name=volumes,proto3" json:"volumes,omitempty"`
	Cmd           []string               `protobuf:"bytes,8,rep,name=cmd,proto3" json:"cmd,omitempty"`
	Routes        []*RouteSpec           `protobuf:"bytes,9,rep,name=routes,proto3" json:"routes,omitempty"`
	Env           []string               `protobuf:"bytes,10,rep,name=env,proto3" json:"env,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ComponentSpec) ProtoMessage() {}

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

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

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

func (x *ComponentSpec) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *ComponentSpec) GetNetwork() string {
	if x != nil {
		return x.Network
	}
	return ""
}

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

func (x *ComponentSpec) GetRestart() string {
	if x != nil {
		return x.Restart
	}
	return ""
}

func (x *ComponentSpec) GetPorts() []string {
	if x != nil {
		return x.Ports
	}
	return nil
}

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

func (x *ComponentSpec) GetCmd() []string {
	if x != nil {
		return x.Cmd
	}
	return nil
}

func (x *ComponentSpec) GetRoutes() []*RouteSpec {
	if x != nil {
		return x.Routes
	}
	return nil
}

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

type ServiceSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Active        bool                   `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"`
	Components    []*ComponentSpec       `protobuf:"bytes,3,rep,name=components,proto3" json:"components,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ServiceSpec) ProtoMessage() {}

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

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

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

func (x *ServiceSpec) GetActive() bool {
	if x != nil {
		return x.Active
	}
	return false
}

func (x *ServiceSpec) GetComponents() []*ComponentSpec {
	if x != nil {
		return x.Components
	}
	return nil
}

type DeployRequest struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Service *ServiceSpec           `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// Deploy a single component by name. Empty means deploy all.
	Component     string `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeployRequest) ProtoMessage() {}

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

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

func (x *DeployRequest) GetService() *ServiceSpec {
	if x != nil {
		return x.Service
	}
	return nil
}

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

type DeployResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ComponentResult     `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeployResponse) ProtoMessage() {}

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

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

func (x *DeployResponse) GetResults() []*ComponentResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type ComponentResult struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Success       bool                   `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
	Error         string                 `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ComponentResult) ProtoMessage() {}

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

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

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

func (x *ComponentResult) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

type StopServiceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StopServiceRequest) ProtoMessage() {}

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

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

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

type StopServiceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ComponentResult     `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StopServiceResponse) ProtoMessage() {}

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

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

func (x *StopServiceResponse) GetResults() []*ComponentResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type StartServiceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StartServiceRequest) ProtoMessage() {}

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

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

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

type StartServiceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ComponentResult     `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StartServiceResponse) ProtoMessage() {}

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

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

func (x *StartServiceResponse) GetResults() []*ComponentResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type RestartServiceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RestartServiceRequest) ProtoMessage() {}

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

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

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

type RestartServiceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ComponentResult     `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RestartServiceResponse) ProtoMessage() {}

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

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

func (x *RestartServiceResponse) GetResults() []*ComponentResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type UndeployServiceRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UndeployServiceRequest) ProtoMessage() {}

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

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

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

type UndeployServiceResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ComponentResult     `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UndeployServiceResponse) ProtoMessage() {}

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

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

func (x *UndeployServiceResponse) GetResults() []*ComponentResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type SyncDesiredStateRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// All services for this node.
	Services      []*ServiceSpec `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SyncDesiredStateRequest) ProtoMessage() {}

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

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

func (x *SyncDesiredStateRequest) GetServices() []*ServiceSpec {
	if x != nil {
		return x.Services
	}
	return nil
}

type SyncDesiredStateResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*ServiceSyncResult   `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SyncDesiredStateResponse) ProtoMessage() {}

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

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

func (x *SyncDesiredStateResponse) GetResults() []*ServiceSyncResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type ServiceSyncResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Whether the desired state was updated.
	Changed       bool   `protobuf:"varint,2,opt,name=changed,proto3" json:"changed,omitempty"`
	Summary       string `protobuf:"bytes,3,opt,name=summary,proto3" json:"summary,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ServiceSyncResult) ProtoMessage() {}

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

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

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

func (x *ServiceSyncResult) GetChanged() bool {
	if x != nil {
		return x.Changed
	}
	return false
}

func (x *ServiceSyncResult) GetSummary() string {
	if x != nil {
		return x.Summary
	}
	return ""
}

type ListServicesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListServicesRequest) ProtoMessage() {}

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

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

type ServiceInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Active        bool                   `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"`
	Components    []*ComponentInfo       `protobuf:"bytes,3,rep,name=components,proto3" json:"components,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ServiceInfo) ProtoMessage() {}

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

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

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

func (x *ServiceInfo) GetActive() bool {
	if x != nil {
		return x.Active
	}
	return false
}

func (x *ServiceInfo) GetComponents() []*ComponentInfo {
	if x != nil {
		return x.Components
	}
	return nil
}

type ComponentInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Image string                 `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
	// "running", "stopped", "ignore"
	DesiredState string `protobuf:"bytes,3,opt,name=desired_state,json=desiredState,proto3" json:"desired_state,omitempty"`
	// "running", "stopped", "exited", "removed", "unknown"
	ObservedState string `protobuf:"bytes,4,opt,name=observed_state,json=observedState,proto3" json:"observed_state,omitempty"`
	// Extracted from the image tag.
	Version       string                 `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
	Started       *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=started,proto3" json:"started,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ComponentInfo) ProtoMessage() {}

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

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

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

func (x *ComponentInfo) GetImage() string {
	if x != nil {
		return x.Image
	}
	return ""
}

func (x *ComponentInfo) GetDesiredState() string {
	if x != nil {
		return x.DesiredState
	}
	return ""
}

func (x *ComponentInfo) GetObservedState() string {
	if x != nil {
		return x.ObservedState
	}
	return ""
}

func (x *ComponentInfo) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *ComponentInfo) GetStarted() *timestamppb.Timestamp {
	if x != nil {
		return x.Started
	}
	return nil
}

type ListServicesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Services      []*ServiceInfo         `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListServicesResponse) ProtoMessage() {}

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

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

func (x *ListServicesResponse) GetServices() []*ServiceInfo {
	if x != nil {
		return x.Services
	}
	return nil
}

type GetServiceStatusRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Empty means all services.
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetServiceStatusRequest) ProtoMessage() {}

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

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

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

type DriftInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Service       string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	Component     string                 `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	DesiredState  string                 `protobuf:"bytes,3,opt,name=desired_state,json=desiredState,proto3" json:"desired_state,omitempty"`
	ObservedState string                 `protobuf:"bytes,4,opt,name=observed_state,json=observedState,proto3" json:"observed_state,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DriftInfo) ProtoMessage() {}

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

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

func (x *DriftInfo) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

func (x *DriftInfo) GetDesiredState() string {
	if x != nil {
		return x.DesiredState
	}
	return ""
}

func (x *DriftInfo) GetObservedState() string {
	if x != nil {
		return x.ObservedState
	}
	return ""
}

type EventInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Service       string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	Component     string                 `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	PrevState     string                 `protobuf:"bytes,3,opt,name=prev_state,json=prevState,proto3" json:"prev_state,omitempty"`
	NewState      string                 `protobuf:"bytes,4,opt,name=new_state,json=newState,proto3" json:"new_state,omitempty"`
	Timestamp     *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EventInfo) ProtoMessage() {}

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

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

func (x *EventInfo) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

func (x *EventInfo) GetPrevState() string {
	if x != nil {
		return x.PrevState
	}
	return ""
}

func (x *EventInfo) GetNewState() string {
	if x != nil {
		return x.NewState
	}
	return ""
}

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

type GetServiceStatusResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Services      []*ServiceInfo         `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
	Drift         []*DriftInfo           `protobuf:"bytes,2,rep,name=drift,proto3" json:"drift,omitempty"`
	RecentEvents  []*EventInfo           `protobuf:"bytes,3,rep,name=recent_events,json=recentEvents,proto3" json:"recent_events,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetServiceStatusResponse) ProtoMessage() {}

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

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

func (x *GetServiceStatusResponse) GetServices() []*ServiceInfo {
	if x != nil {
		return x.Services
	}
	return nil
}

func (x *GetServiceStatusResponse) GetDrift() []*DriftInfo {
	if x != nil {
		return x.Drift
	}
	return nil
}

func (x *GetServiceStatusResponse) GetRecentEvents() []*EventInfo {
	if x != nil {
		return x.RecentEvents
	}
	return nil
}

type LiveCheckRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LiveCheckRequest) ProtoMessage() {}

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

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

type LiveCheckResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Services with freshly observed state from the container runtime.
	Services      []*ServiceInfo `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LiveCheckResponse) ProtoMessage() {}

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

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

func (x *LiveCheckResponse) GetServices() []*ServiceInfo {
	if x != nil {
		return x.Services
	}
	return nil
}

type AdoptContainersRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Service name. The agent matches containers named <service>-*.
	Service       string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AdoptContainersRequest) ProtoMessage() {}

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

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

func (x *AdoptContainersRequest) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

type AdoptResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Runtime container name (e.g., "metacrypt-api").
	Container string `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
	// Derived component name (e.g., "api").
	Component     string `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	Success       bool   `protobuf:"varint,3,opt,name=success,proto3" json:"success,omitempty"`
	Error         string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AdoptResult) ProtoMessage() {}

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

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

func (x *AdoptResult) GetContainer() string {
	if x != nil {
		return x.Container
	}
	return ""
}

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

func (x *AdoptResult) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

type AdoptContainersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*AdoptResult         `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AdoptContainersResponse) ProtoMessage() {}

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

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

func (x *AdoptContainersResponse) GetResults() []*AdoptResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type PushFileRequest struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Service string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// Relative path within the service directory.
	Path    string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
	// File permissions (e.g., 0600).
	Mode          uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PushFileRequest) ProtoMessage() {}

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

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

func (x *PushFileRequest) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

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

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

type PushFileResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	Error         string                 `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PushFileResponse) ProtoMessage() {}

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

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

func (x *PushFileResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

type PullFileRequest struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Service string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// Relative path within the service directory.
	Path          string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PullFileRequest) ProtoMessage() {}

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

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

func (x *PullFileRequest) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

type PullFileResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Content       []byte                 `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
	Mode          uint32                 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"`
	Error         string                 `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PullFileResponse) ProtoMessage() {}

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

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

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

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

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

type NodeStatusRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*NodeStatusRequest) ProtoMessage() {}

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

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

type NodeStatusResponse struct {
	state    protoimpl.MessageState `protogen:"open.v1"`
	NodeName string                 `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"`
	// "podman" or "docker"
	Runtime          string                 `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"`
	RuntimeVersion   string                 `protobuf:"bytes,3,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"`
	ServiceCount     uint32                 `protobuf:"varint,4,opt,name=service_count,json=serviceCount,proto3" json:"service_count,omitempty"`
	ComponentCount   uint32                 `protobuf:"varint,5,opt,name=component_count,json=componentCount,proto3" json:"component_count,omitempty"`
	DiskTotalBytes   uint64                 `protobuf:"varint,6,opt,name=disk_total_bytes,json=diskTotalBytes,proto3" json:"disk_total_bytes,omitempty"`
	DiskFreeBytes    uint64                 `protobuf:"varint,7,opt,name=disk_free_bytes,json=diskFreeBytes,proto3" json:"disk_free_bytes,omitempty"`
	MemoryTotalBytes uint64                 `protobuf:"varint,8,opt,name=memory_total_bytes,json=memoryTotalBytes,proto3" json:"memory_total_bytes,omitempty"`
	MemoryFreeBytes  uint64                 `protobuf:"varint,9,opt,name=memory_free_bytes,json=memoryFreeBytes,proto3" json:"memory_free_bytes,omitempty"`
	CpuUsagePercent  float64                `protobuf:"fixed64,10,opt,name=cpu_usage_percent,json=cpuUsagePercent,proto3" json:"cpu_usage_percent,omitempty"`
	UptimeSince      *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=uptime_since,json=uptimeSince,proto3" json:"uptime_since,omitempty"`
	AgentVersion     string                 `protobuf:"bytes,12,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*NodeStatusResponse) ProtoMessage() {}

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

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

func (x *NodeStatusResponse) GetNodeName() string {
	if x != nil {
		return x.NodeName
	}
	return ""
}

func (x *NodeStatusResponse) GetRuntime() string {
	if x != nil {
		return x.Runtime
	}
	return ""
}

func (x *NodeStatusResponse) GetRuntimeVersion() string {
	if x != nil {
		return x.RuntimeVersion
	}
	return ""
}

func (x *NodeStatusResponse) GetServiceCount() uint32 {
	if x != nil {
		return x.ServiceCount
	}
	return 0
}

func (x *NodeStatusResponse) GetComponentCount() uint32 {
	if x != nil {
		return x.ComponentCount
	}
	return 0
}

func (x *NodeStatusResponse) GetDiskTotalBytes() uint64 {
	if x != nil {
		return x.DiskTotalBytes
	}
	return 0
}

func (x *NodeStatusResponse) GetDiskFreeBytes() uint64 {
	if x != nil {
		return x.DiskFreeBytes
	}
	return 0
}

func (x *NodeStatusResponse) GetMemoryTotalBytes() uint64 {
	if x != nil {
		return x.MemoryTotalBytes
	}
	return 0
}

func (x *NodeStatusResponse) GetMemoryFreeBytes() uint64 {
	if x != nil {
		return x.MemoryFreeBytes
	}
	return 0
}

func (x *NodeStatusResponse) GetCpuUsagePercent() float64 {
	if x != nil {
		return x.CpuUsagePercent
	}
	return 0
}

func (x *NodeStatusResponse) GetUptimeSince() *timestamppb.Timestamp {
	if x != nil {
		return x.UptimeSince
	}
	return nil
}

func (x *NodeStatusResponse) GetAgentVersion() string {
	if x != nil {
		return x.AgentVersion
	}
	return ""
}

type PurgeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Service name (empty = all services).
	Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	// Component name (empty = all eligible in service).
	Component string `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	// Preview only, do not modify registry.
	DryRun bool `protobuf:"varint,3,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
	// Currently-defined service/component pairs (e.g., "mcns/mcns").
	// The agent uses this to determine what is "not in any service definition".
	DefinedComponents []string `protobuf:"bytes,4,rep,name=defined_components,json=definedComponents,proto3" json:"defined_components,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*PurgeRequest) ProtoMessage() {}

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

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

func (x *PurgeRequest) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

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

func (x *PurgeRequest) GetDefinedComponents() []string {
	if x != nil {
		return x.DefinedComponents
	}
	return nil
}

type PurgeResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Results       []*PurgeResult         `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PurgeResponse) ProtoMessage() {}

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

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

func (x *PurgeResponse) GetResults() []*PurgeResult {
	if x != nil {
		return x.Results
	}
	return nil
}

type PurgeResult struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	Service   string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	Component string                 `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`
	// true if removed (or would be, in dry-run).
	Purged bool `protobuf:"varint,3,opt,name=purged,proto3" json:"purged,omitempty"`
	// Why eligible, or why refused.
	Reason        string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PurgeResult) ProtoMessage() {}

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

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

func (x *PurgeResult) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

func (x *PurgeResult) GetPurged() bool {
	if x != nil {
		return x.Purged
	}
	return false
}

func (x *PurgeResult) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

type LogsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Service       string                 `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
	Component     string                 `protobuf:"bytes,2,opt,name=component,proto3" json:"component,omitempty"`    // optional; defaults to first/only component
	Tail          int32                  `protobuf:"varint,3,opt,name=tail,proto3" json:"tail,omitempty"`             // number of lines from the end (0 = all)
	Follow        bool                   `protobuf:"varint,4,opt,name=follow,proto3" json:"follow,omitempty"`         // stream new output
	Timestamps    bool                   `protobuf:"varint,5,opt,name=timestamps,proto3" json:"timestamps,omitempty"` // prepend timestamps
	Since         string                 `protobuf:"bytes,6,opt,name=since,proto3" json:"since,omitempty"`            // show logs since (e.g., "2h", "2026-03-28T00:00:00Z")
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LogsRequest) ProtoMessage() {}

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

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

func (x *LogsRequest) GetService() string {
	if x != nil {
		return x.Service
	}
	return ""
}

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

func (x *LogsRequest) GetTail() int32 {
	if x != nil {
		return x.Tail
	}
	return 0
}

func (x *LogsRequest) GetFollow() bool {
	if x != nil {
		return x.Follow
	}
	return false
}

func (x *LogsRequest) GetTimestamps() bool {
	if x != nil {
		return x.Timestamps
	}
	return false
}

func (x *LogsRequest) GetSince() string {
	if x != nil {
		return x.Since
	}
	return ""
}

type LogsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Data          []byte                 `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*LogsResponse) ProtoMessage() {}

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

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

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

var File_proto_mcp_v1_mcp_proto protoreflect.FileDescriptor

const file_proto_mcp_v1_mcp_proto_rawDesc = "" +
	"\n" +
	"\x16proto/mcp/v1/mcp.proto\x12\x06mcp.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"c\n" +
	"\tRouteSpec\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
	"\x04port\x18\x02 \x01(\x05R\x04port\x12\x12\n" +
	"\x04mode\x18\x03 \x01(\tR\x04mode\x12\x1a\n" +
	"\bhostname\x18\x04 \x01(\tR\bhostname\"\x80\x02\n" +
	"\rComponentSpec\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05image\x18\x02 \x01(\tR\x05image\x12\x18\n" +
	"\anetwork\x18\x03 \x01(\tR\anetwork\x12\x12\n" +
	"\x04user\x18\x04 \x01(\tR\x04user\x12\x18\n" +
	"\arestart\x18\x05 \x01(\tR\arestart\x12\x14\n" +
	"\x05ports\x18\x06 \x03(\tR\x05ports\x12\x18\n" +
	"\avolumes\x18\a \x03(\tR\avolumes\x12\x10\n" +
	"\x03cmd\x18\b \x03(\tR\x03cmd\x12)\n" +
	"\x06routes\x18\t \x03(\v2\x11.mcp.v1.RouteSpecR\x06routes\x12\x10\n" +
	"\x03env\x18\n" +
	" \x03(\tR\x03env\"p\n" +
	"\vServiceSpec\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
	"\x06active\x18\x02 \x01(\bR\x06active\x125\n" +
	"\n" +
	"components\x18\x03 \x03(\v2\x15.mcp.v1.ComponentSpecR\n" +
	"components\"\\\n" +
	"\rDeployRequest\x12-\n" +
	"\aservice\x18\x01 \x01(\v2\x13.mcp.v1.ServiceSpecR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\"C\n" +
	"\x0eDeployResponse\x121\n" +
	"\aresults\x18\x01 \x03(\v2\x17.mcp.v1.ComponentResultR\aresults\"U\n" +
	"\x0fComponentResult\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\asuccess\x18\x02 \x01(\bR\asuccess\x12\x14\n" +
	"\x05error\x18\x03 \x01(\tR\x05error\"(\n" +
	"\x12StopServiceRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"H\n" +
	"\x13StopServiceResponse\x121\n" +
	"\aresults\x18\x01 \x03(\v2\x17.mcp.v1.ComponentResultR\aresults\")\n" +
	"\x13StartServiceRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"I\n" +
	"\x14StartServiceResponse\x121\n" +
	"\aresults\x18\x01 \x03(\v2\x17.mcp.v1.ComponentResultR\aresults\"+\n" +
	"\x15RestartServiceRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"K\n" +
	"\x16RestartServiceResponse\x121\n" +
	"\aresults\x18\x01 \x03(\v2\x17.mcp.v1.ComponentResultR\aresults\",\n" +
	"\x16UndeployServiceRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"L\n" +
	"\x17UndeployServiceResponse\x121\n" +
	"\aresults\x18\x01 \x03(\v2\x17.mcp.v1.ComponentResultR\aresults\"J\n" +
	"\x17SyncDesiredStateRequest\x12/\n" +
	"\bservices\x18\x01 \x03(\v2\x13.mcp.v1.ServiceSpecR\bservices\"O\n" +
	"\x18SyncDesiredStateResponse\x123\n" +
	"\aresults\x18\x01 \x03(\v2\x19.mcp.v1.ServiceSyncResultR\aresults\"[\n" +
	"\x11ServiceSyncResult\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
	"\achanged\x18\x02 \x01(\bR\achanged\x12\x18\n" +
	"\asummary\x18\x03 \x01(\tR\asummary\"\x15\n" +
	"\x13ListServicesRequest\"p\n" +
	"\vServiceInfo\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
	"\x06active\x18\x02 \x01(\bR\x06active\x125\n" +
	"\n" +
	"components\x18\x03 \x03(\v2\x15.mcp.v1.ComponentInfoR\n" +
	"components\"\xd5\x01\n" +
	"\rComponentInfo\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05image\x18\x02 \x01(\tR\x05image\x12#\n" +
	"\rdesired_state\x18\x03 \x01(\tR\fdesiredState\x12%\n" +
	"\x0eobserved_state\x18\x04 \x01(\tR\robservedState\x12\x18\n" +
	"\aversion\x18\x05 \x01(\tR\aversion\x124\n" +
	"\astarted\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\astarted\"G\n" +
	"\x14ListServicesResponse\x12/\n" +
	"\bservices\x18\x01 \x03(\v2\x13.mcp.v1.ServiceInfoR\bservices\"-\n" +
	"\x17GetServiceStatusRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"\x8f\x01\n" +
	"\tDriftInfo\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12#\n" +
	"\rdesired_state\x18\x03 \x01(\tR\fdesiredState\x12%\n" +
	"\x0eobserved_state\x18\x04 \x01(\tR\robservedState\"\xb9\x01\n" +
	"\tEventInfo\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12\x1d\n" +
	"\n" +
	"prev_state\x18\x03 \x01(\tR\tprevState\x12\x1b\n" +
	"\tnew_state\x18\x04 \x01(\tR\bnewState\x128\n" +
	"\ttimestamp\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"\xac\x01\n" +
	"\x18GetServiceStatusResponse\x12/\n" +
	"\bservices\x18\x01 \x03(\v2\x13.mcp.v1.ServiceInfoR\bservices\x12'\n" +
	"\x05drift\x18\x02 \x03(\v2\x11.mcp.v1.DriftInfoR\x05drift\x126\n" +
	"\rrecent_events\x18\x03 \x03(\v2\x11.mcp.v1.EventInfoR\frecentEvents\"\x12\n" +
	"\x10LiveCheckRequest\"D\n" +
	"\x11LiveCheckResponse\x12/\n" +
	"\bservices\x18\x01 \x03(\v2\x13.mcp.v1.ServiceInfoR\bservices\"2\n" +
	"\x16AdoptContainersRequest\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\"y\n" +
	"\vAdoptResult\x12\x1c\n" +
	"\tcontainer\x18\x01 \x01(\tR\tcontainer\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12\x18\n" +
	"\asuccess\x18\x03 \x01(\bR\asuccess\x12\x14\n" +
	"\x05error\x18\x04 \x01(\tR\x05error\"H\n" +
	"\x17AdoptContainersResponse\x12-\n" +
	"\aresults\x18\x01 \x03(\v2\x13.mcp.v1.AdoptResultR\aresults\"m\n" +
	"\x0fPushFileRequest\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x12\n" +
	"\x04path\x18\x02 \x01(\tR\x04path\x12\x18\n" +
	"\acontent\x18\x03 \x01(\fR\acontent\x12\x12\n" +
	"\x04mode\x18\x04 \x01(\rR\x04mode\"B\n" +
	"\x10PushFileResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x14\n" +
	"\x05error\x18\x02 \x01(\tR\x05error\"?\n" +
	"\x0fPullFileRequest\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x12\n" +
	"\x04path\x18\x02 \x01(\tR\x04path\"V\n" +
	"\x10PullFileResponse\x12\x18\n" +
	"\acontent\x18\x01 \x01(\fR\acontent\x12\x12\n" +
	"\x04mode\x18\x02 \x01(\rR\x04mode\x12\x14\n" +
	"\x05error\x18\x03 \x01(\tR\x05error\"\x13\n" +
	"\x11NodeStatusRequest\"\xfe\x03\n" +
	"\x12NodeStatusResponse\x12\x1b\n" +
	"\tnode_name\x18\x01 \x01(\tR\bnodeName\x12\x18\n" +
	"\aruntime\x18\x02 \x01(\tR\aruntime\x12'\n" +
	"\x0fruntime_version\x18\x03 \x01(\tR\x0eruntimeVersion\x12#\n" +
	"\rservice_count\x18\x04 \x01(\rR\fserviceCount\x12'\n" +
	"\x0fcomponent_count\x18\x05 \x01(\rR\x0ecomponentCount\x12(\n" +
	"\x10disk_total_bytes\x18\x06 \x01(\x04R\x0ediskTotalBytes\x12&\n" +
	"\x0fdisk_free_bytes\x18\a \x01(\x04R\rdiskFreeBytes\x12,\n" +
	"\x12memory_total_bytes\x18\b \x01(\x04R\x10memoryTotalBytes\x12*\n" +
	"\x11memory_free_bytes\x18\t \x01(\x04R\x0fmemoryFreeBytes\x12*\n" +
	"\x11cpu_usage_percent\x18\n" +
	" \x01(\x01R\x0fcpuUsagePercent\x12=\n" +
	"\fuptime_since\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\vuptimeSince\x12#\n" +
	"\ragent_version\x18\f \x01(\tR\fagentVersion\"\x8e\x01\n" +
	"\fPurgeRequest\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12\x17\n" +
	"\adry_run\x18\x03 \x01(\bR\x06dryRun\x12-\n" +
	"\x12defined_components\x18\x04 \x03(\tR\x11definedComponents\">\n" +
	"\rPurgeResponse\x12-\n" +
	"\aresults\x18\x01 \x03(\v2\x13.mcp.v1.PurgeResultR\aresults\"u\n" +
	"\vPurgeResult\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12\x16\n" +
	"\x06purged\x18\x03 \x01(\bR\x06purged\x12\x16\n" +
	"\x06reason\x18\x04 \x01(\tR\x06reason\"\xa7\x01\n" +
	"\vLogsRequest\x12\x18\n" +
	"\aservice\x18\x01 \x01(\tR\aservice\x12\x1c\n" +
	"\tcomponent\x18\x02 \x01(\tR\tcomponent\x12\x12\n" +
	"\x04tail\x18\x03 \x01(\x05R\x04tail\x12\x16\n" +
	"\x06follow\x18\x04 \x01(\bR\x06follow\x12\x1e\n" +
	"\n" +
	"timestamps\x18\x05 \x01(\bR\n" +
	"timestamps\x12\x14\n" +
	"\x05since\x18\x06 \x01(\tR\x05since\"\"\n" +
	"\fLogsResponse\x12\x12\n" +
	"\x04data\x18\x01 \x01(\fR\x04data2\xc8\b\n" +
	"\x0fMcpAgentService\x127\n" +
	"\x06Deploy\x12\x15.mcp.v1.DeployRequest\x1a\x16.mcp.v1.DeployResponse\x12R\n" +
	"\x0fUndeployService\x12\x1e.mcp.v1.UndeployServiceRequest\x1a\x1f.mcp.v1.UndeployServiceResponse\x12F\n" +
	"\vStopService\x12\x1a.mcp.v1.StopServiceRequest\x1a\x1b.mcp.v1.StopServiceResponse\x12I\n" +
	"\fStartService\x12\x1b.mcp.v1.StartServiceRequest\x1a\x1c.mcp.v1.StartServiceResponse\x12O\n" +
	"\x0eRestartService\x12\x1d.mcp.v1.RestartServiceRequest\x1a\x1e.mcp.v1.RestartServiceResponse\x12U\n" +
	"\x10SyncDesiredState\x12\x1f.mcp.v1.SyncDesiredStateRequest\x1a .mcp.v1.SyncDesiredStateResponse\x12I\n" +
	"\fListServices\x12\x1b.mcp.v1.ListServicesRequest\x1a\x1c.mcp.v1.ListServicesResponse\x12U\n" +
	"\x10GetServiceStatus\x12\x1f.mcp.v1.GetServiceStatusRequest\x1a .mcp.v1.GetServiceStatusResponse\x12@\n" +
	"\tLiveCheck\x12\x18.mcp.v1.LiveCheckRequest\x1a\x19.mcp.v1.LiveCheckResponse\x12R\n" +
	"\x0fAdoptContainers\x12\x1e.mcp.v1.AdoptContainersRequest\x1a\x1f.mcp.v1.AdoptContainersResponse\x12=\n" +
	"\x0ePurgeComponent\x12\x14.mcp.v1.PurgeRequest\x1a\x15.mcp.v1.PurgeResponse\x12=\n" +
	"\bPushFile\x12\x17.mcp.v1.PushFileRequest\x1a\x18.mcp.v1.PushFileResponse\x12=\n" +
	"\bPullFile\x12\x17.mcp.v1.PullFileRequest\x1a\x18.mcp.v1.PullFileResponse\x12C\n" +
	"\n" +
	"NodeStatus\x12\x19.mcp.v1.NodeStatusRequest\x1a\x1a.mcp.v1.NodeStatusResponse\x123\n" +
	"\x04Logs\x12\x13.mcp.v1.LogsRequest\x1a\x14.mcp.v1.LogsResponse0\x01B*Z(git.wntrmute.dev/mc/mcp/gen/mcp/v1;mcpv1b\x06proto3"

var (
	file_proto_mcp_v1_mcp_proto_rawDescOnce sync.Once
	file_proto_mcp_v1_mcp_proto_rawDescData []byte
)

func file_proto_mcp_v1_mcp_proto_rawDescGZIP() []byte {
	file_proto_mcp_v1_mcp_proto_rawDescOnce.Do(func() {
		file_proto_mcp_v1_mcp_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_mcp_v1_mcp_proto_rawDesc), len(file_proto_mcp_v1_mcp_proto_rawDesc)))
	})
	return file_proto_mcp_v1_mcp_proto_rawDescData
}

var file_proto_mcp_v1_mcp_proto_msgTypes = make([]protoimpl.MessageInfo, 41)
var file_proto_mcp_v1_mcp_proto_goTypes = []any{
	(*RouteSpec)(nil),                // 0: mcp.v1.RouteSpec
	(*ComponentSpec)(nil),            // 1: mcp.v1.ComponentSpec
	(*ServiceSpec)(nil),              // 2: mcp.v1.ServiceSpec
	(*DeployRequest)(nil),            // 3: mcp.v1.DeployRequest
	(*DeployResponse)(nil),           // 4: mcp.v1.DeployResponse
	(*ComponentResult)(nil),          // 5: mcp.v1.ComponentResult
	(*StopServiceRequest)(nil),       // 6: mcp.v1.StopServiceRequest
	(*StopServiceResponse)(nil),      // 7: mcp.v1.StopServiceResponse
	(*StartServiceRequest)(nil),      // 8: mcp.v1.StartServiceRequest
	(*StartServiceResponse)(nil),     // 9: mcp.v1.StartServiceResponse
	(*RestartServiceRequest)(nil),    // 10: mcp.v1.RestartServiceRequest
	(*RestartServiceResponse)(nil),   // 11: mcp.v1.RestartServiceResponse
	(*UndeployServiceRequest)(nil),   // 12: mcp.v1.UndeployServiceRequest
	(*UndeployServiceResponse)(nil),  // 13: mcp.v1.UndeployServiceResponse
	(*SyncDesiredStateRequest)(nil),  // 14: mcp.v1.SyncDesiredStateRequest
	(*SyncDesiredStateResponse)(nil), // 15: mcp.v1.SyncDesiredStateResponse
	(*ServiceSyncResult)(nil),        // 16: mcp.v1.ServiceSyncResult
	(*ListServicesRequest)(nil),      // 17: mcp.v1.ListServicesRequest
	(*ServiceInfo)(nil),              // 18: mcp.v1.ServiceInfo
	(*ComponentInfo)(nil),            // 19: mcp.v1.ComponentInfo
	(*ListServicesResponse)(nil),     // 20: mcp.v1.ListServicesResponse
	(*GetServiceStatusRequest)(nil),  // 21: mcp.v1.GetServiceStatusRequest
	(*DriftInfo)(nil),                // 22: mcp.v1.DriftInfo
	(*EventInfo)(nil),                // 23: mcp.v1.EventInfo
	(*GetServiceStatusResponse)(nil), // 24: mcp.v1.GetServiceStatusResponse
	(*LiveCheckRequest)(nil),         // 25: mcp.v1.LiveCheckRequest
	(*LiveCheckResponse)(nil),        // 26: mcp.v1.LiveCheckResponse
	(*AdoptContainersRequest)(nil),   // 27: mcp.v1.AdoptContainersRequest
	(*AdoptResult)(nil),              // 28: mcp.v1.AdoptResult
	(*AdoptContainersResponse)(nil),  // 29: mcp.v1.AdoptContainersResponse
	(*PushFileRequest)(nil),          // 30: mcp.v1.PushFileRequest
	(*PushFileResponse)(nil),         // 31: mcp.v1.PushFileResponse
	(*PullFileRequest)(nil),          // 32: mcp.v1.PullFileRequest
	(*PullFileResponse)(nil),         // 33: mcp.v1.PullFileResponse
	(*NodeStatusRequest)(nil),        // 34: mcp.v1.NodeStatusRequest
	(*NodeStatusResponse)(nil),       // 35: mcp.v1.NodeStatusResponse
	(*PurgeRequest)(nil),             // 36: mcp.v1.PurgeRequest
	(*PurgeResponse)(nil),            // 37: mcp.v1.PurgeResponse
	(*PurgeResult)(nil),              // 38: mcp.v1.PurgeResult
	(*LogsRequest)(nil),              // 39: mcp.v1.LogsRequest
	(*LogsResponse)(nil),             // 40: mcp.v1.LogsResponse
	(*timestamppb.Timestamp)(nil),    // 41: google.protobuf.Timestamp
}
var file_proto_mcp_v1_mcp_proto_depIdxs = []int32{
	0,  // 0: mcp.v1.ComponentSpec.routes:type_name -> mcp.v1.RouteSpec
	1,  // 1: mcp.v1.ServiceSpec.components:type_name -> mcp.v1.ComponentSpec
	2,  // 2: mcp.v1.DeployRequest.service:type_name -> mcp.v1.ServiceSpec
	5,  // 3: mcp.v1.DeployResponse.results:type_name -> mcp.v1.ComponentResult
	5,  // 4: mcp.v1.StopServiceResponse.results:type_name -> mcp.v1.ComponentResult
	5,  // 5: mcp.v1.StartServiceResponse.results:type_name -> mcp.v1.ComponentResult
	5,  // 6: mcp.v1.RestartServiceResponse.results:type_name -> mcp.v1.ComponentResult
	5,  // 7: mcp.v1.UndeployServiceResponse.results:type_name -> mcp.v1.ComponentResult
	2,  // 8: mcp.v1.SyncDesiredStateRequest.services:type_name -> mcp.v1.ServiceSpec
	16, // 9: mcp.v1.SyncDesiredStateResponse.results:type_name -> mcp.v1.ServiceSyncResult
	19, // 10: mcp.v1.ServiceInfo.components:type_name -> mcp.v1.ComponentInfo
	41, // 11: mcp.v1.ComponentInfo.started:type_name -> google.protobuf.Timestamp
	18, // 12: mcp.v1.ListServicesResponse.services:type_name -> mcp.v1.ServiceInfo
	41, // 13: mcp.v1.EventInfo.timestamp:type_name -> google.protobuf.Timestamp
	18, // 14: mcp.v1.GetServiceStatusResponse.services:type_name -> mcp.v1.ServiceInfo
	22, // 15: mcp.v1.GetServiceStatusResponse.drift:type_name -> mcp.v1.DriftInfo
	23, // 16: mcp.v1.GetServiceStatusResponse.recent_events:type_name -> mcp.v1.EventInfo
	18, // 17: mcp.v1.LiveCheckResponse.services:type_name -> mcp.v1.ServiceInfo
	28, // 18: mcp.v1.AdoptContainersResponse.results:type_name -> mcp.v1.AdoptResult
	41, // 19: mcp.v1.NodeStatusResponse.uptime_since:type_name -> google.protobuf.Timestamp
	38, // 20: mcp.v1.PurgeResponse.results:type_name -> mcp.v1.PurgeResult
	3,  // 21: mcp.v1.McpAgentService.Deploy:input_type -> mcp.v1.DeployRequest
	12, // 22: mcp.v1.McpAgentService.UndeployService:input_type -> mcp.v1.UndeployServiceRequest
	6,  // 23: mcp.v1.McpAgentService.StopService:input_type -> mcp.v1.StopServiceRequest
	8,  // 24: mcp.v1.McpAgentService.StartService:input_type -> mcp.v1.StartServiceRequest
	10, // 25: mcp.v1.McpAgentService.RestartService:input_type -> mcp.v1.RestartServiceRequest
	14, // 26: mcp.v1.McpAgentService.SyncDesiredState:input_type -> mcp.v1.SyncDesiredStateRequest
	17, // 27: mcp.v1.McpAgentService.ListServices:input_type -> mcp.v1.ListServicesRequest
	21, // 28: mcp.v1.McpAgentService.GetServiceStatus:input_type -> mcp.v1.GetServiceStatusRequest
	25, // 29: mcp.v1.McpAgentService.LiveCheck:input_type -> mcp.v1.LiveCheckRequest
	27, // 30: mcp.v1.McpAgentService.AdoptContainers:input_type -> mcp.v1.AdoptContainersRequest
	36, // 31: mcp.v1.McpAgentService.PurgeComponent:input_type -> mcp.v1.PurgeRequest
	30, // 32: mcp.v1.McpAgentService.PushFile:input_type -> mcp.v1.PushFileRequest
	32, // 33: mcp.v1.McpAgentService.PullFile:input_type -> mcp.v1.PullFileRequest
	34, // 34: mcp.v1.McpAgentService.NodeStatus:input_type -> mcp.v1.NodeStatusRequest
	39, // 35: mcp.v1.McpAgentService.Logs:input_type -> mcp.v1.LogsRequest
	4,  // 36: mcp.v1.McpAgentService.Deploy:output_type -> mcp.v1.DeployResponse
	13, // 37: mcp.v1.McpAgentService.UndeployService:output_type -> mcp.v1.UndeployServiceResponse
	7,  // 38: mcp.v1.McpAgentService.StopService:output_type -> mcp.v1.StopServiceResponse
	9,  // 39: mcp.v1.McpAgentService.StartService:output_type -> mcp.v1.StartServiceResponse
	11, // 40: mcp.v1.McpAgentService.RestartService:output_type -> mcp.v1.RestartServiceResponse
	15, // 41: mcp.v1.McpAgentService.SyncDesiredState:output_type -> mcp.v1.SyncDesiredStateResponse
	20, // 42: mcp.v1.McpAgentService.ListServices:output_type -> mcp.v1.ListServicesResponse
	24, // 43: mcp.v1.McpAgentService.GetServiceStatus:output_type -> mcp.v1.GetServiceStatusResponse
	26, // 44: mcp.v1.McpAgentService.LiveCheck:output_type -> mcp.v1.LiveCheckResponse
	29, // 45: mcp.v1.McpAgentService.AdoptContainers:output_type -> mcp.v1.AdoptContainersResponse
	37, // 46: mcp.v1.McpAgentService.PurgeComponent:output_type -> mcp.v1.PurgeResponse
	31, // 47: mcp.v1.McpAgentService.PushFile:output_type -> mcp.v1.PushFileResponse
	33, // 48: mcp.v1.McpAgentService.PullFile:output_type -> mcp.v1.PullFileResponse
	35, // 49: mcp.v1.McpAgentService.NodeStatus:output_type -> mcp.v1.NodeStatusResponse
	40, // 50: mcp.v1.McpAgentService.Logs:output_type -> mcp.v1.LogsResponse
	36, // [36:51] is the sub-list for method output_type
	21, // [21:36] is the sub-list for method input_type
	21, // [21:21] is the sub-list for extension type_name
	21, // [21:21] is the sub-list for extension extendee
	0,  // [0:21] is the sub-list for field type_name
}

func init() { file_proto_mcp_v1_mcp_proto_init() }
func file_proto_mcp_v1_mcp_proto_init() {
	if File_proto_mcp_v1_mcp_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_mcp_v1_mcp_proto_rawDesc), len(file_proto_mcp_v1_mcp_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   41,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_proto_mcp_v1_mcp_proto_goTypes,
		DependencyIndexes: file_proto_mcp_v1_mcp_proto_depIdxs,
		MessageInfos:      file_proto_mcp_v1_mcp_proto_msgTypes,
	}.Build()
	File_proto_mcp_v1_mcp_proto = out.File
	file_proto_mcp_v1_mcp_proto_goTypes = nil
	file_proto_mcp_v1_mcp_proto_depIdxs = nil
}
