// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v5.29.3
// source: proto/iop/control.proto

package iop

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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)
)

// PolicyRule is a placeholder for future edge-level routing/resource constraints.
type PolicyRule struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Expression    string                 `protobuf:"bytes,2,opt,name=expression,proto3" json:"expression,omitempty"`
	Params        map[string]string      `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PolicyRule) ProtoMessage() {}

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

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

func (x *PolicyRule) GetExpression() string {
	if x != nil {
		return x.Expression
	}
	return ""
}

func (x *PolicyRule) GetParams() map[string]string {
	if x != nil {
		return x.Params
	}
	return nil
}

// ScheduleRequest is a reserved legacy tombstone. The original direct Node
// scheduling fields are retired; the message name is kept only to keep the
// field numbers reserved so they cannot be reused as an active contract.
// Future orchestration must go through Edge-owned runtime state.
type ScheduleRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ScheduleRequest) ProtoMessage() {}

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

// ScheduleResponse is a reserved legacy tombstone. The original node
// address/token fields are retired; future scheduling should be reworked
// around Edge-owned runtime state instead of bypassing Edge.
type ScheduleResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ScheduleResponse) ProtoMessage() {}

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

type ClientHelloRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ClientId      string                 `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	ClientVersion string                 `protobuf:"bytes,2,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ClientHelloRequest) ProtoMessage() {}

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

func (x *ClientHelloRequest) GetClientId() string {
	if x != nil {
		return x.ClientId
	}
	return ""
}

func (x *ClientHelloRequest) GetClientVersion() string {
	if x != nil {
		return x.ClientVersion
	}
	return ""
}

type ClientHelloResponse struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Ready              bool                   `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"`
	Protocol           string                 `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"`
	ServerTimeUnixNano int64                  `protobuf:"varint,3,opt,name=server_time_unix_nano,json=serverTimeUnixNano,proto3" json:"server_time_unix_nano,omitempty"`
	Message            string                 `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ClientHelloResponse) ProtoMessage() {}

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

func (x *ClientHelloResponse) GetReady() bool {
	if x != nil {
		return x.Ready
	}
	return false
}

func (x *ClientHelloResponse) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *ClientHelloResponse) GetServerTimeUnixNano() int64 {
	if x != nil {
		return x.ServerTimeUnixNano
	}
	return 0
}

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

// EdgeHelloRequest is sent by Edge to Control Plane immediately after a
// Control Plane-Edge wire connection is established. It describes the Edge
// itself and must not become a direct Node registration or scheduling contract.
type EdgeHelloRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	EdgeId        string                 `protobuf:"bytes,1,opt,name=edge_id,json=edgeId,proto3" json:"edge_id,omitempty"`
	EdgeName      string                 `protobuf:"bytes,2,opt,name=edge_name,json=edgeName,proto3" json:"edge_name,omitempty"`
	Version       string                 `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	Capabilities  []string               `protobuf:"bytes,4,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
	Metadata      map[string]string      `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EdgeHelloRequest) ProtoMessage() {}

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

func (x *EdgeHelloRequest) GetEdgeId() string {
	if x != nil {
		return x.EdgeId
	}
	return ""
}

func (x *EdgeHelloRequest) GetEdgeName() string {
	if x != nil {
		return x.EdgeName
	}
	return ""
}

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

func (x *EdgeHelloRequest) GetCapabilities() []string {
	if x != nil {
		return x.Capabilities
	}
	return nil
}

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

// EdgeHelloResponse acknowledges Edge enrollment on the Control Plane-Edge
// wire. Rejection details stay at the Edge boundary rather than exposing Node
// scheduling decisions.
type EdgeHelloResponse struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	Accepted            bool                   `protobuf:"varint,1,opt,name=accepted,proto3" json:"accepted,omitempty"`
	Protocol            string                 `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"`
	ServerTimeUnixNano  int64                  `protobuf:"varint,3,opt,name=server_time_unix_nano,json=serverTimeUnixNano,proto3" json:"server_time_unix_nano,omitempty"`
	Message             string                 `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
	Reason              string                 `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"`
	PrincipalProjection *PrincipalProjection   `protobuf:"bytes,6,opt,name=principal_projection,json=principalProjection,proto3" json:"principal_projection,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*EdgeHelloResponse) ProtoMessage() {}

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

func (x *EdgeHelloResponse) GetAccepted() bool {
	if x != nil {
		return x.Accepted
	}
	return false
}

func (x *EdgeHelloResponse) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *EdgeHelloResponse) GetServerTimeUnixNano() int64 {
	if x != nil {
		return x.ServerTimeUnixNano
	}
	return 0
}

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

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

func (x *EdgeHelloResponse) GetPrincipalProjection() *PrincipalProjection {
	if x != nil {
		return x.PrincipalProjection
	}
	return nil
}

// ProjectedPrincipalToken is a secret-free verifier entry reserved for the
// authenticated Control Plane-Edge credential-plane rollout. The digest is a
// SHA-256 hex value; raw IOP tokens are never carried by this message.
type ProjectedPrincipalToken struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	TokenDigestSha256 string                 `protobuf:"bytes,1,opt,name=token_digest_sha256,json=tokenDigestSha256,proto3" json:"token_digest_sha256,omitempty"`
	PrincipalRef      string                 `protobuf:"bytes,2,opt,name=principal_ref,json=principalRef,proto3" json:"principal_ref,omitempty"`
	PrincipalAlias    string                 `protobuf:"bytes,3,opt,name=principal_alias,json=principalAlias,proto3" json:"principal_alias,omitempty"`
	TokenRef          string                 `protobuf:"bytes,4,opt,name=token_ref,json=tokenRef,proto3" json:"token_ref,omitempty"`
	TokenRevision     uint64                 `protobuf:"varint,5,opt,name=token_revision,json=tokenRevision,proto3" json:"token_revision,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*ProjectedPrincipalToken) ProtoMessage() {}

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

func (x *ProjectedPrincipalToken) GetTokenDigestSha256() string {
	if x != nil {
		return x.TokenDigestSha256
	}
	return ""
}

func (x *ProjectedPrincipalToken) GetPrincipalRef() string {
	if x != nil {
		return x.PrincipalRef
	}
	return ""
}

func (x *ProjectedPrincipalToken) GetPrincipalAlias() string {
	if x != nil {
		return x.PrincipalAlias
	}
	return ""
}

func (x *ProjectedPrincipalToken) GetTokenRef() string {
	if x != nil {
		return x.TokenRef
	}
	return ""
}

func (x *ProjectedPrincipalToken) GetTokenRevision() uint64 {
	if x != nil {
		return x.TokenRevision
	}
	return 0
}

// ProjectedPrincipalRoute is a secret-free principal route binding. It names
// the selected credential slot and revision but never carries ciphertext,
// plaintext provider credentials, or runtime authorization headers.
type ProjectedPrincipalRoute struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	RouteId            string                 `protobuf:"bytes,1,opt,name=route_id,json=routeId,proto3" json:"route_id,omitempty"`
	RouteAlias         string                 `protobuf:"bytes,2,opt,name=route_alias,json=routeAlias,proto3" json:"route_alias,omitempty"`
	PrincipalRef       string                 `protobuf:"bytes,3,opt,name=principal_ref,json=principalRef,proto3" json:"principal_ref,omitempty"`
	CredentialSlotRef  string                 `protobuf:"bytes,4,opt,name=credential_slot_ref,json=credentialSlotRef,proto3" json:"credential_slot_ref,omitempty"`
	ProfileId          string                 `protobuf:"bytes,5,opt,name=profile_id,json=profileId,proto3" json:"profile_id,omitempty"`
	UpstreamModel      string                 `protobuf:"bytes,6,opt,name=upstream_model,json=upstreamModel,proto3" json:"upstream_model,omitempty"`
	ResourceSelector   string                 `protobuf:"bytes,7,opt,name=resource_selector,json=resourceSelector,proto3" json:"resource_selector,omitempty"`
	RouteRevision      uint64                 `protobuf:"varint,8,opt,name=route_revision,json=routeRevision,proto3" json:"route_revision,omitempty"`
	CredentialRevision uint64                 `protobuf:"varint,9,opt,name=credential_revision,json=credentialRevision,proto3" json:"credential_revision,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ProjectedPrincipalRoute) ProtoMessage() {}

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

func (x *ProjectedPrincipalRoute) GetRouteId() string {
	if x != nil {
		return x.RouteId
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetRouteAlias() string {
	if x != nil {
		return x.RouteAlias
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetPrincipalRef() string {
	if x != nil {
		return x.PrincipalRef
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetCredentialSlotRef() string {
	if x != nil {
		return x.CredentialSlotRef
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetProfileId() string {
	if x != nil {
		return x.ProfileId
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetUpstreamModel() string {
	if x != nil {
		return x.UpstreamModel
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetResourceSelector() string {
	if x != nil {
		return x.ResourceSelector
	}
	return ""
}

func (x *ProjectedPrincipalRoute) GetRouteRevision() uint64 {
	if x != nil {
		return x.RouteRevision
	}
	return 0
}

func (x *ProjectedPrincipalRoute) GetCredentialRevision() uint64 {
	if x != nil {
		return x.CredentialRevision
	}
	return 0
}

// PrincipalProjection is an immutable, generation-fenced authorization and
// routing snapshot. These value types are dormant until the Control
// Plane-Edge transport provides authenticated peer identity and integrity.
type PrincipalProjection struct {
	state             protoimpl.MessageState     `protogen:"open.v1"`
	Generation        uint64                     `protobuf:"varint,1,opt,name=generation,proto3" json:"generation,omitempty"`
	IssuedAtUnixNano  int64                      `protobuf:"varint,2,opt,name=issued_at_unix_nano,json=issuedAtUnixNano,proto3" json:"issued_at_unix_nano,omitempty"`
	ExpiresAtUnixNano int64                      `protobuf:"varint,3,opt,name=expires_at_unix_nano,json=expiresAtUnixNano,proto3" json:"expires_at_unix_nano,omitempty"`
	Tokens            []*ProjectedPrincipalToken `protobuf:"bytes,4,rep,name=tokens,proto3" json:"tokens,omitempty"`
	Routes            []*ProjectedPrincipalRoute `protobuf:"bytes,5,rep,name=routes,proto3" json:"routes,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*PrincipalProjection) ProtoMessage() {}

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

func (x *PrincipalProjection) GetGeneration() uint64 {
	if x != nil {
		return x.Generation
	}
	return 0
}

func (x *PrincipalProjection) GetIssuedAtUnixNano() int64 {
	if x != nil {
		return x.IssuedAtUnixNano
	}
	return 0
}

func (x *PrincipalProjection) GetExpiresAtUnixNano() int64 {
	if x != nil {
		return x.ExpiresAtUnixNano
	}
	return 0
}

func (x *PrincipalProjection) GetTokens() []*ProjectedPrincipalToken {
	if x != nil {
		return x.Tokens
	}
	return nil
}

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

// PrincipalProjectionApplyRequest and PrincipalProjectionApplyResponse reserve
// the future apply operation payload without registering a parser or handler
// on the current unauthenticated Control Plane-Edge connection.
type PrincipalProjectionApplyRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Projection    *PrincipalProjection   `protobuf:"bytes,1,opt,name=projection,proto3" json:"projection,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PrincipalProjectionApplyRequest) ProtoMessage() {}

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

func (x *PrincipalProjectionApplyRequest) GetProjection() *PrincipalProjection {
	if x != nil {
		return x.Projection
	}
	return nil
}

type PrincipalProjectionApplyResponse struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Applied            bool                   `protobuf:"varint,1,opt,name=applied,proto3" json:"applied,omitempty"`
	AcceptedGeneration uint64                 `protobuf:"varint,2,opt,name=accepted_generation,json=acceptedGeneration,proto3" json:"accepted_generation,omitempty"`
	Reason             string                 `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*PrincipalProjectionApplyResponse) ProtoMessage() {}

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

func (x *PrincipalProjectionApplyResponse) GetApplied() bool {
	if x != nil {
		return x.Applied
	}
	return false
}

func (x *PrincipalProjectionApplyResponse) GetAcceptedGeneration() uint64 {
	if x != nil {
		return x.AcceptedGeneration
	}
	return 0
}

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

// EdgeStatusRequest asks a connected Edge to report its Edge-owned node
// registry snapshot. It carries only a correlation id; the Control Plane does
// not address, connect to, or schedule Node directly through this contract.
type EdgeStatusRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EdgeStatusRequest) ProtoMessage() {}

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

func (x *EdgeStatusRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

// EdgeNodeSnapshot is a surface-neutral view of a node owned by the Edge. It
// only mirrors what the Edge service exposes and must not carry Node address,
// token, or scheduling fields.
type EdgeNodeSnapshot struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	NodeId    string                 `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	Alias     string                 `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"`
	Label     string                 `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"`
	Connected bool                   `protobuf:"varint,4,opt,name=connected,proto3" json:"connected,omitempty"`
	Config    *NodeConfigPayload     `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"`
	// provider_snapshots uses the runtime ProviderSnapshot wire name for node
	// resources/providers. category distinguishes API and local inference.
	ProviderSnapshots []*ProviderSnapshot `protobuf:"bytes,6,rep,name=provider_snapshots,json=providerSnapshots,proto3" json:"provider_snapshots,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*EdgeNodeSnapshot) ProtoMessage() {}

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

func (x *EdgeNodeSnapshot) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *EdgeNodeSnapshot) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *EdgeNodeSnapshot) GetLabel() string {
	if x != nil {
		return x.Label
	}
	return ""
}

func (x *EdgeNodeSnapshot) GetConnected() bool {
	if x != nil {
		return x.Connected
	}
	return false
}

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

func (x *EdgeNodeSnapshot) GetProviderSnapshots() []*ProviderSnapshot {
	if x != nil {
		return x.ProviderSnapshots
	}
	return nil
}

// EdgeStatusResponse returns the Edge-owned node snapshot list in reply to an
// EdgeStatusRequest. The Control Plane observes this snapshot rather than
// replicating the Edge-local registry.
type EdgeStatusResponse struct {
	state                protoimpl.MessageState   `protogen:"open.v1"`
	RequestId            string                   `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	EdgeId               string                   `protobuf:"bytes,2,opt,name=edge_id,json=edgeId,proto3" json:"edge_id,omitempty"`
	EdgeName             string                   `protobuf:"bytes,3,opt,name=edge_name,json=edgeName,proto3" json:"edge_name,omitempty"`
	ObservedTimeUnixNano int64                    `protobuf:"varint,4,opt,name=observed_time_unix_nano,json=observedTimeUnixNano,proto3" json:"observed_time_unix_nano,omitempty"`
	Nodes                []*EdgeNodeSnapshot      `protobuf:"bytes,5,rep,name=nodes,proto3" json:"nodes,omitempty"`
	Metadata             map[string]string        `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Error                string                   `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"`
	Capabilities         []*EdgeCapabilitySummary `protobuf:"bytes,8,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*EdgeStatusResponse) ProtoMessage() {}

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

func (x *EdgeStatusResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *EdgeStatusResponse) GetEdgeId() string {
	if x != nil {
		return x.EdgeId
	}
	return ""
}

func (x *EdgeStatusResponse) GetEdgeName() string {
	if x != nil {
		return x.EdgeName
	}
	return ""
}

func (x *EdgeStatusResponse) GetObservedTimeUnixNano() int64 {
	if x != nil {
		return x.ObservedTimeUnixNano
	}
	return 0
}

func (x *EdgeStatusResponse) GetNodes() []*EdgeNodeSnapshot {
	if x != nil {
		return x.Nodes
	}
	return nil
}

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

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

func (x *EdgeStatusResponse) GetCapabilities() []*EdgeCapabilitySummary {
	if x != nil {
		return x.Capabilities
	}
	return nil
}

type EdgeCapabilitySummary struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Kind          string                 `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
	Available     bool                   `protobuf:"varint,2,opt,name=available,proto3" json:"available,omitempty"`
	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	Summary       string                 `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EdgeCapabilitySummary) ProtoMessage() {}

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

func (x *EdgeCapabilitySummary) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *EdgeCapabilitySummary) GetAvailable() bool {
	if x != nil {
		return x.Available
	}
	return false
}

func (x *EdgeCapabilitySummary) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

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

type EdgeCommandRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	RequestId      string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	CommandId      string                 `protobuf:"bytes,2,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"`
	TargetSelector string                 `protobuf:"bytes,3,opt,name=target_selector,json=targetSelector,proto3" json:"target_selector,omitempty"`
	Operation      string                 `protobuf:"bytes,4,opt,name=operation,proto3" json:"operation,omitempty"`
	Parameters     map[string]string      `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*EdgeCommandRequest) ProtoMessage() {}

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

func (x *EdgeCommandRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *EdgeCommandRequest) GetCommandId() string {
	if x != nil {
		return x.CommandId
	}
	return ""
}

func (x *EdgeCommandRequest) GetTargetSelector() string {
	if x != nil {
		return x.TargetSelector
	}
	return ""
}

func (x *EdgeCommandRequest) GetOperation() string {
	if x != nil {
		return x.Operation
	}
	return ""
}

func (x *EdgeCommandRequest) GetParameters() map[string]string {
	if x != nil {
		return x.Parameters
	}
	return nil
}

type EdgeCommandResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequestId     string                 `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	CommandId     string                 `protobuf:"bytes,2,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"`
	EdgeId        string                 `protobuf:"bytes,3,opt,name=edge_id,json=edgeId,proto3" json:"edge_id,omitempty"`
	Status        string                 `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
	Summary       string                 `protobuf:"bytes,5,opt,name=summary,proto3" json:"summary,omitempty"`
	Error         string                 `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EdgeCommandResponse) ProtoMessage() {}

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

func (x *EdgeCommandResponse) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

func (x *EdgeCommandResponse) GetCommandId() string {
	if x != nil {
		return x.CommandId
	}
	return ""
}

func (x *EdgeCommandResponse) GetEdgeId() string {
	if x != nil {
		return x.EdgeId
	}
	return ""
}

func (x *EdgeCommandResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

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

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

type EdgeCommandEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CommandId     string                 `protobuf:"bytes,1,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"`
	EdgeId        string                 `protobuf:"bytes,2,opt,name=edge_id,json=edgeId,proto3" json:"edge_id,omitempty"`
	Phase         string                 `protobuf:"bytes,3,opt,name=phase,proto3" json:"phase,omitempty"`
	Summary       string                 `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"`
	OccurredAt    int64                  `protobuf:"varint,5,opt,name=occurred_at,json=occurredAt,proto3" json:"occurred_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EdgeCommandEvent) ProtoMessage() {}

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

func (x *EdgeCommandEvent) GetCommandId() string {
	if x != nil {
		return x.CommandId
	}
	return ""
}

func (x *EdgeCommandEvent) GetEdgeId() string {
	if x != nil {
		return x.EdgeId
	}
	return ""
}

func (x *EdgeCommandEvent) GetPhase() string {
	if x != nil {
		return x.Phase
	}
	return ""
}

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

func (x *EdgeCommandEvent) GetOccurredAt() int64 {
	if x != nil {
		return x.OccurredAt
	}
	return 0
}

var File_proto_iop_control_proto protoreflect.FileDescriptor

const file_proto_iop_control_proto_rawDesc = "" +
	"\n" +
	"\x17proto/iop/control.proto\x12\x03iop\x1a\x17proto/iop/runtime.proto\"\xb0\x01\n" +
	"\n" +
	"PolicyRule\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n" +
	"\n" +
	"expression\x18\x02 \x01(\tR\n" +
	"expression\x123\n" +
	"\x06params\x18\x03 \x03(\v2\x1b.iop.PolicyRule.ParamsEntryR\x06params\x1a9\n" +
	"\vParamsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\";\n" +
	"\x0fScheduleRequestJ\x04\b\x01\x10\x05R\x06job_idR\x06targetR\bpoliciesR\bmetadata\"1\n" +
	"\x10ScheduleResponseJ\x04\b\x01\x10\x04R\anode_idR\aaddressR\x05token\"X\n" +
	"\x12ClientHelloRequest\x12\x1b\n" +
	"\tclient_id\x18\x01 \x01(\tR\bclientId\x12%\n" +
	"\x0eclient_version\x18\x02 \x01(\tR\rclientVersion\"\x94\x01\n" +
	"\x13ClientHelloResponse\x12\x14\n" +
	"\x05ready\x18\x01 \x01(\bR\x05ready\x12\x1a\n" +
	"\bprotocol\x18\x02 \x01(\tR\bprotocol\x121\n" +
	"\x15server_time_unix_nano\x18\x03 \x01(\x03R\x12serverTimeUnixNano\x12\x18\n" +
	"\amessage\x18\x04 \x01(\tR\amessage\"\x84\x02\n" +
	"\x10EdgeHelloRequest\x12\x17\n" +
	"\aedge_id\x18\x01 \x01(\tR\x06edgeId\x12\x1b\n" +
	"\tedge_name\x18\x02 \x01(\tR\bedgeName\x12\x18\n" +
	"\aversion\x18\x03 \x01(\tR\aversion\x12\"\n" +
	"\fcapabilities\x18\x04 \x03(\tR\fcapabilities\x12?\n" +
	"\bmetadata\x18\x05 \x03(\v2#.iop.EdgeHelloRequest.MetadataEntryR\bmetadata\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xfd\x01\n" +
	"\x11EdgeHelloResponse\x12\x1a\n" +
	"\baccepted\x18\x01 \x01(\bR\baccepted\x12\x1a\n" +
	"\bprotocol\x18\x02 \x01(\tR\bprotocol\x121\n" +
	"\x15server_time_unix_nano\x18\x03 \x01(\x03R\x12serverTimeUnixNano\x12\x18\n" +
	"\amessage\x18\x04 \x01(\tR\amessage\x12\x16\n" +
	"\x06reason\x18\x05 \x01(\tR\x06reason\x12K\n" +
	"\x14principal_projection\x18\x06 \x01(\v2\x18.iop.PrincipalProjectionR\x13principalProjection\"\xdb\x01\n" +
	"\x17ProjectedPrincipalToken\x12.\n" +
	"\x13token_digest_sha256\x18\x01 \x01(\tR\x11tokenDigestSha256\x12#\n" +
	"\rprincipal_ref\x18\x02 \x01(\tR\fprincipalRef\x12'\n" +
	"\x0fprincipal_alias\x18\x03 \x01(\tR\x0eprincipalAlias\x12\x1b\n" +
	"\ttoken_ref\x18\x04 \x01(\tR\btokenRef\x12%\n" +
	"\x0etoken_revision\x18\x05 \x01(\x04R\rtokenRevision\"\xf5\x02\n" +
	"\x17ProjectedPrincipalRoute\x12\x19\n" +
	"\broute_id\x18\x01 \x01(\tR\arouteId\x12\x1f\n" +
	"\vroute_alias\x18\x02 \x01(\tR\n" +
	"routeAlias\x12#\n" +
	"\rprincipal_ref\x18\x03 \x01(\tR\fprincipalRef\x12.\n" +
	"\x13credential_slot_ref\x18\x04 \x01(\tR\x11credentialSlotRef\x12\x1d\n" +
	"\n" +
	"profile_id\x18\x05 \x01(\tR\tprofileId\x12%\n" +
	"\x0eupstream_model\x18\x06 \x01(\tR\rupstreamModel\x12+\n" +
	"\x11resource_selector\x18\a \x01(\tR\x10resourceSelector\x12%\n" +
	"\x0eroute_revision\x18\b \x01(\x04R\rrouteRevision\x12/\n" +
	"\x13credential_revision\x18\t \x01(\x04R\x12credentialRevision\"\x81\x02\n" +
	"\x13PrincipalProjection\x12\x1e\n" +
	"\n" +
	"generation\x18\x01 \x01(\x04R\n" +
	"generation\x12-\n" +
	"\x13issued_at_unix_nano\x18\x02 \x01(\x03R\x10issuedAtUnixNano\x12/\n" +
	"\x14expires_at_unix_nano\x18\x03 \x01(\x03R\x11expiresAtUnixNano\x124\n" +
	"\x06tokens\x18\x04 \x03(\v2\x1c.iop.ProjectedPrincipalTokenR\x06tokens\x124\n" +
	"\x06routes\x18\x05 \x03(\v2\x1c.iop.ProjectedPrincipalRouteR\x06routes\"[\n" +
	"\x1fPrincipalProjectionApplyRequest\x128\n" +
	"\n" +
	"projection\x18\x01 \x01(\v2\x18.iop.PrincipalProjectionR\n" +
	"projection\"\x85\x01\n" +
	" PrincipalProjectionApplyResponse\x12\x18\n" +
	"\aapplied\x18\x01 \x01(\bR\aapplied\x12/\n" +
	"\x13accepted_generation\x18\x02 \x01(\x04R\x12acceptedGeneration\x12\x16\n" +
	"\x06reason\x18\x03 \x01(\tR\x06reason\"2\n" +
	"\x11EdgeStatusRequest\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\"\xeb\x01\n" +
	"\x10EdgeNodeSnapshot\x12\x17\n" +
	"\anode_id\x18\x01 \x01(\tR\x06nodeId\x12\x14\n" +
	"\x05alias\x18\x02 \x01(\tR\x05alias\x12\x14\n" +
	"\x05label\x18\x03 \x01(\tR\x05label\x12\x1c\n" +
	"\tconnected\x18\x04 \x01(\bR\tconnected\x12.\n" +
	"\x06config\x18\x05 \x01(\v2\x16.iop.NodeConfigPayloadR\x06config\x12D\n" +
	"\x12provider_snapshots\x18\x06 \x03(\v2\x15.iop.ProviderSnapshotR\x11providerSnapshots\"\xb8\x03\n" +
	"\x12EdgeStatusResponse\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12\x17\n" +
	"\aedge_id\x18\x02 \x01(\tR\x06edgeId\x12\x1b\n" +
	"\tedge_name\x18\x03 \x01(\tR\bedgeName\x125\n" +
	"\x17observed_time_unix_nano\x18\x04 \x01(\x03R\x14observedTimeUnixNano\x12+\n" +
	"\x05nodes\x18\x05 \x03(\v2\x15.iop.EdgeNodeSnapshotR\x05nodes\x12A\n" +
	"\bmetadata\x18\x06 \x03(\v2%.iop.EdgeStatusResponse.MetadataEntryR\bmetadata\x12\x14\n" +
	"\x05error\x18\a \x01(\tR\x05error\x12>\n" +
	"\fcapabilities\x18\b \x03(\v2\x1a.iop.EdgeCapabilitySummaryR\fcapabilities\x1a;\n" +
	"\rMetadataEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\t\x10\n" +
	"R\rdomain_agents\"{\n" +
	"\x15EdgeCapabilitySummary\x12\x12\n" +
	"\x04kind\x18\x01 \x01(\tR\x04kind\x12\x1c\n" +
	"\tavailable\x18\x02 \x01(\bR\tavailable\x12\x16\n" +
	"\x06status\x18\x03 \x01(\tR\x06status\x12\x18\n" +
	"\asummary\x18\x04 \x01(\tR\asummary\"\xa1\x02\n" +
	"\x12EdgeCommandRequest\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12\x1d\n" +
	"\n" +
	"command_id\x18\x02 \x01(\tR\tcommandId\x12'\n" +
	"\x0ftarget_selector\x18\x03 \x01(\tR\x0etargetSelector\x12\x1c\n" +
	"\toperation\x18\x04 \x01(\tR\toperation\x12G\n" +
	"\n" +
	"parameters\x18\x05 \x03(\v2'.iop.EdgeCommandRequest.ParametersEntryR\n" +
	"parameters\x1a=\n" +
	"\x0fParametersEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb4\x01\n" +
	"\x13EdgeCommandResponse\x12\x1d\n" +
	"\n" +
	"request_id\x18\x01 \x01(\tR\trequestId\x12\x1d\n" +
	"\n" +
	"command_id\x18\x02 \x01(\tR\tcommandId\x12\x17\n" +
	"\aedge_id\x18\x03 \x01(\tR\x06edgeId\x12\x16\n" +
	"\x06status\x18\x04 \x01(\tR\x06status\x12\x18\n" +
	"\asummary\x18\x05 \x01(\tR\asummary\x12\x14\n" +
	"\x05error\x18\x06 \x01(\tR\x05error\"\x9b\x01\n" +
	"\x10EdgeCommandEvent\x12\x1d\n" +
	"\n" +
	"command_id\x18\x01 \x01(\tR\tcommandId\x12\x17\n" +
	"\aedge_id\x18\x02 \x01(\tR\x06edgeId\x12\x14\n" +
	"\x05phase\x18\x03 \x01(\tR\x05phase\x12\x18\n" +
	"\asummary\x18\x04 \x01(\tR\asummary\x12\x1f\n" +
	"\voccurred_at\x18\x05 \x01(\x03R\n" +
	"occurredAtB\x13Z\x11iop/proto/gen/iopb\x06proto3"

var (
	file_proto_iop_control_proto_rawDescOnce sync.Once
	file_proto_iop_control_proto_rawDescData []byte
)

func file_proto_iop_control_proto_rawDescGZIP() []byte {
	file_proto_iop_control_proto_rawDescOnce.Do(func() {
		file_proto_iop_control_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_proto_iop_control_proto_rawDesc), len(file_proto_iop_control_proto_rawDesc)))
	})
	return file_proto_iop_control_proto_rawDescData
}

var file_proto_iop_control_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_proto_iop_control_proto_goTypes = []any{
	(*PolicyRule)(nil),                       // 0: iop.PolicyRule
	(*ScheduleRequest)(nil),                  // 1: iop.ScheduleRequest
	(*ScheduleResponse)(nil),                 // 2: iop.ScheduleResponse
	(*ClientHelloRequest)(nil),               // 3: iop.ClientHelloRequest
	(*ClientHelloResponse)(nil),              // 4: iop.ClientHelloResponse
	(*EdgeHelloRequest)(nil),                 // 5: iop.EdgeHelloRequest
	(*EdgeHelloResponse)(nil),                // 6: iop.EdgeHelloResponse
	(*ProjectedPrincipalToken)(nil),          // 7: iop.ProjectedPrincipalToken
	(*ProjectedPrincipalRoute)(nil),          // 8: iop.ProjectedPrincipalRoute
	(*PrincipalProjection)(nil),              // 9: iop.PrincipalProjection
	(*PrincipalProjectionApplyRequest)(nil),  // 10: iop.PrincipalProjectionApplyRequest
	(*PrincipalProjectionApplyResponse)(nil), // 11: iop.PrincipalProjectionApplyResponse
	(*EdgeStatusRequest)(nil),                // 12: iop.EdgeStatusRequest
	(*EdgeNodeSnapshot)(nil),                 // 13: iop.EdgeNodeSnapshot
	(*EdgeStatusResponse)(nil),               // 14: iop.EdgeStatusResponse
	(*EdgeCapabilitySummary)(nil),            // 15: iop.EdgeCapabilitySummary
	(*EdgeCommandRequest)(nil),               // 16: iop.EdgeCommandRequest
	(*EdgeCommandResponse)(nil),              // 17: iop.EdgeCommandResponse
	(*EdgeCommandEvent)(nil),                 // 18: iop.EdgeCommandEvent
	nil,                                      // 19: iop.PolicyRule.ParamsEntry
	nil,                                      // 20: iop.EdgeHelloRequest.MetadataEntry
	nil,                                      // 21: iop.EdgeStatusResponse.MetadataEntry
	nil,                                      // 22: iop.EdgeCommandRequest.ParametersEntry
	(*NodeConfigPayload)(nil),                // 23: iop.NodeConfigPayload
	(*ProviderSnapshot)(nil),                 // 24: iop.ProviderSnapshot
}
var file_proto_iop_control_proto_depIdxs = []int32{
	19, // 0: iop.PolicyRule.params:type_name -> iop.PolicyRule.ParamsEntry
	20, // 1: iop.EdgeHelloRequest.metadata:type_name -> iop.EdgeHelloRequest.MetadataEntry
	9,  // 2: iop.EdgeHelloResponse.principal_projection:type_name -> iop.PrincipalProjection
	7,  // 3: iop.PrincipalProjection.tokens:type_name -> iop.ProjectedPrincipalToken
	8,  // 4: iop.PrincipalProjection.routes:type_name -> iop.ProjectedPrincipalRoute
	9,  // 5: iop.PrincipalProjectionApplyRequest.projection:type_name -> iop.PrincipalProjection
	23, // 6: iop.EdgeNodeSnapshot.config:type_name -> iop.NodeConfigPayload
	24, // 7: iop.EdgeNodeSnapshot.provider_snapshots:type_name -> iop.ProviderSnapshot
	13, // 8: iop.EdgeStatusResponse.nodes:type_name -> iop.EdgeNodeSnapshot
	21, // 9: iop.EdgeStatusResponse.metadata:type_name -> iop.EdgeStatusResponse.MetadataEntry
	15, // 10: iop.EdgeStatusResponse.capabilities:type_name -> iop.EdgeCapabilitySummary
	22, // 11: iop.EdgeCommandRequest.parameters:type_name -> iop.EdgeCommandRequest.ParametersEntry
	12, // [12:12] is the sub-list for method output_type
	12, // [12:12] is the sub-list for method input_type
	12, // [12:12] is the sub-list for extension type_name
	12, // [12:12] is the sub-list for extension extendee
	0,  // [0:12] is the sub-list for field type_name
}

func init() { file_proto_iop_control_proto_init() }
func file_proto_iop_control_proto_init() {
	if File_proto_iop_control_proto != nil {
		return
	}
	file_proto_iop_runtime_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_iop_control_proto_rawDesc), len(file_proto_iop_control_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_proto_iop_control_proto_goTypes,
		DependencyIndexes: file_proto_iop_control_proto_depIdxs,
		MessageInfos:      file_proto_iop_control_proto_msgTypes,
	}.Build()
	File_proto_iop_control_proto = out.File
	file_proto_iop_control_proto_goTypes = nil
	file_proto_iop_control_proto_depIdxs = nil
}
