Help us shape the future of Go! Take the 2026 Go Developer Survey

innerwallv1

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AgentService_Sync_FullMethodName            = "/innerwall.v1.AgentService/Sync"
	AgentService_ReportFlows_FullMethodName     = "/innerwall.v1.AgentService/ReportFlows"
	AgentService_RenewCredential_FullMethodName = "/innerwall.v1.AgentService/RenewCredential"
)
View Source
const (
	EnrollmentService_Enroll_FullMethodName = "/innerwall.v1.EnrollmentService/Enroll"
)

Variables

View Source
var (
	AckStatus_name = map[int32]string{
		0: "ACK_STATUS_UNSPECIFIED",
		1: "ACK_STATUS_APPLIED",
		2: "ACK_STATUS_FAILED",
	}
	AckStatus_value = map[string]int32{
		"ACK_STATUS_UNSPECIFIED": 0,
		"ACK_STATUS_APPLIED":     1,
		"ACK_STATUS_FAILED":      2,
	}
)

Enum value maps for AckStatus.

View Source
var (
	OwnedTableState_name = map[int32]string{
		0: "OWNED_TABLE_STATE_UNSPECIFIED",
		1: "OWNED_TABLE_STATE_PRESENT",
		2: "OWNED_TABLE_STATE_ABSENT",
	}
	OwnedTableState_value = map[string]int32{
		"OWNED_TABLE_STATE_UNSPECIFIED": 0,
		"OWNED_TABLE_STATE_PRESENT":     1,
		"OWNED_TABLE_STATE_ABSENT":      2,
	}
)

Enum value maps for OwnedTableState.

View Source
var (
	EvidenceGapKind_name = map[int32]string{
		0: "EVIDENCE_GAP_KIND_UNSPECIFIED",
		1: "EVIDENCE_GAP_KIND_SOURCE_OVERRUN",
		2: "EVIDENCE_GAP_KIND_SOURCE_RESTART",
		3: "EVIDENCE_GAP_KIND_BUFFER_OVERFLOW",
		4: "EVIDENCE_GAP_KIND_DUMP_TRUNCATED",
		5: "EVIDENCE_GAP_KIND_WINDOW_OVERFLOW",
		6: "EVIDENCE_GAP_KIND_WINDOW_REJECTED",
		7: "EVIDENCE_GAP_KIND_TABLE_REMOVED",
		8: "EVIDENCE_GAP_KIND_AGENT_SILENT",
	}
	EvidenceGapKind_value = map[string]int32{
		"EVIDENCE_GAP_KIND_UNSPECIFIED":     0,
		"EVIDENCE_GAP_KIND_SOURCE_OVERRUN":  1,
		"EVIDENCE_GAP_KIND_SOURCE_RESTART":  2,
		"EVIDENCE_GAP_KIND_BUFFER_OVERFLOW": 3,
		"EVIDENCE_GAP_KIND_DUMP_TRUNCATED":  4,
		"EVIDENCE_GAP_KIND_WINDOW_OVERFLOW": 5,
		"EVIDENCE_GAP_KIND_WINDOW_REJECTED": 6,
		"EVIDENCE_GAP_KIND_TABLE_REMOVED":   7,
		"EVIDENCE_GAP_KIND_AGENT_SILENT":    8,
	}
)

Enum value maps for EvidenceGapKind.

View Source
var (
	EvidenceSource_name = map[int32]string{
		0: "EVIDENCE_SOURCE_UNSPECIFIED",
		1: "EVIDENCE_SOURCE_CONNTRACK",
		2: "EVIDENCE_SOURCE_NFLOG",
	}
	EvidenceSource_value = map[string]int32{
		"EVIDENCE_SOURCE_UNSPECIFIED": 0,
		"EVIDENCE_SOURCE_CONNTRACK":   1,
		"EVIDENCE_SOURCE_NFLOG":       2,
	}
)

Enum value maps for EvidenceSource.

View Source
var (
	PolicyDecision_name = map[int32]string{
		0: "POLICY_DECISION_UNSPECIFIED",
		1: "POLICY_DECISION_OBSERVED",
		2: "POLICY_DECISION_ALLOWED",
		3: "POLICY_DECISION_WOULD_BLOCK",
		4: "POLICY_DECISION_BLOCKED",
	}
	PolicyDecision_value = map[string]int32{
		"POLICY_DECISION_UNSPECIFIED": 0,
		"POLICY_DECISION_OBSERVED":    1,
		"POLICY_DECISION_ALLOWED":     2,
		"POLICY_DECISION_WOULD_BLOCK": 3,
		"POLICY_DECISION_BLOCKED":     4,
	}
)

Enum value maps for PolicyDecision.

View Source
var (
	Protocol_name = map[int32]string{
		0: "PROTOCOL_UNSPECIFIED",
		1: "PROTOCOL_TCP",
		2: "PROTOCOL_UDP",
		3: "PROTOCOL_ICMP",
	}
	Protocol_value = map[string]int32{
		"PROTOCOL_UNSPECIFIED": 0,
		"PROTOCOL_TCP":         1,
		"PROTOCOL_UDP":         2,
		"PROTOCOL_ICMP":        3,
	}
)

Enum value maps for Protocol.

View Source
var (
	EnforcementMode_name = map[int32]string{
		0: "ENFORCEMENT_MODE_UNSPECIFIED",
		1: "ENFORCEMENT_MODE_VISIBILITY",
		2: "ENFORCEMENT_MODE_SIMULATION",
		3: "ENFORCEMENT_MODE_ENFORCED",
	}
	EnforcementMode_value = map[string]int32{
		"ENFORCEMENT_MODE_UNSPECIFIED": 0,
		"ENFORCEMENT_MODE_VISIBILITY":  1,
		"ENFORCEMENT_MODE_SIMULATION":  2,
		"ENFORCEMENT_MODE_ENFORCED":    3,
	}
)

Enum value maps for EnforcementMode.

View Source
var (
	SyncState_name = map[int32]string{
		0: "SYNC_STATE_UNSPECIFIED",
		1: "SYNC_STATE_SYNCED",
		2: "SYNC_STATE_PENDING",
		3: "SYNC_STATE_DEGRADED",
		4: "SYNC_STATE_OFFLINE",
	}
	SyncState_value = map[string]int32{
		"SYNC_STATE_UNSPECIFIED": 0,
		"SYNC_STATE_SYNCED":      1,
		"SYNC_STATE_PENDING":     2,
		"SYNC_STATE_DEGRADED":    3,
		"SYNC_STATE_OFFLINE":     4,
	}
)

Enum value maps for SyncState.

View Source
var (
	Direction_name = map[int32]string{
		0: "DIRECTION_UNSPECIFIED",
		1: "DIRECTION_INBOUND",
		2: "DIRECTION_OUTBOUND",
	}
	Direction_value = map[string]int32{
		"DIRECTION_UNSPECIFIED": 0,
		"DIRECTION_INBOUND":     1,
		"DIRECTION_OUTBOUND":    2,
	}
)

Enum value maps for Direction.

View Source
var AgentService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "innerwall.v1.AgentService",
	HandlerType: (*AgentServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RenewCredential",
			Handler:    _AgentService_RenewCredential_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Sync",
			Handler:       _AgentService_Sync_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "ReportFlows",
			Handler:       _AgentService_ReportFlows_Handler,
			ClientStreams: true,
		},
	},
	Metadata: "innerwall/v1/agent.proto",
}

AgentService_ServiceDesc is the grpc.ServiceDesc for AgentService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var EnrollmentService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "innerwall.v1.EnrollmentService",
	HandlerType: (*EnrollmentServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Enroll",
			Handler:    _EnrollmentService_Enroll_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "innerwall/v1/agent.proto",
}

EnrollmentService_ServiceDesc is the grpc.ServiceDesc for EnrollmentService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_innerwall_v1_agent_proto protoreflect.FileDescriptor
View Source
var File_innerwall_v1_inventory_proto protoreflect.FileDescriptor
View Source
var File_innerwall_v1_policy_proto protoreflect.FileDescriptor

Functions

func RegisterAgentServiceServer

func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer)

func RegisterEnrollmentServiceServer

func RegisterEnrollmentServiceServer(s grpc.ServiceRegistrar, srv EnrollmentServiceServer)

Types

type AckStatus

type AckStatus int32
const (
	AckStatus_ACK_STATUS_UNSPECIFIED AckStatus = 0
	// The update was applied atomically to the host firewall.
	AckStatus_ACK_STATUS_APPLIED AckStatus = 1
	// The apply failed as a unit; the agent remains on its previous version.
	// Partial application is not representable by design: a version number is
	// only meaningful if it describes the complete installed state.
	AckStatus_ACK_STATUS_FAILED AckStatus = 2
)

func (AckStatus) Descriptor

func (AckStatus) Descriptor() protoreflect.EnumDescriptor

func (AckStatus) Enum

func (x AckStatus) Enum() *AckStatus

func (AckStatus) EnumDescriptor deprecated

func (AckStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use AckStatus.Descriptor instead.

func (AckStatus) Number

func (x AckStatus) Number() protoreflect.EnumNumber

func (AckStatus) String

func (x AckStatus) String() string

func (AckStatus) Type

type AddressGroup

type AddressGroup struct {
	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// CIDR notation.
	Cidrs []string `protobuf:"bytes,3,rep,name=cidrs,proto3" json:"cidrs,omitempty"`
	// contains filtered or unexported fields
}

A named set of addresses for peers that are not managed workloads (databases without agents, corporate ranges, external services). These exist from day one: no fleet is ever fully enrolled.

func (*AddressGroup) Descriptor deprecated

func (*AddressGroup) Descriptor() ([]byte, []int)

Deprecated: Use AddressGroup.ProtoReflect.Descriptor instead.

func (*AddressGroup) GetCidrs

func (x *AddressGroup) GetCidrs() []string

func (*AddressGroup) GetId

func (x *AddressGroup) GetId() string

func (*AddressGroup) GetName

func (x *AddressGroup) GetName() string

func (*AddressGroup) ProtoMessage

func (*AddressGroup) ProtoMessage()

func (*AddressGroup) ProtoReflect

func (x *AddressGroup) ProtoReflect() protoreflect.Message

func (*AddressGroup) Reset

func (x *AddressGroup) Reset()

func (*AddressGroup) String

func (x *AddressGroup) String() string

type AgentInfo

type AgentInfo struct {
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// Feature capabilities the agent supports, as opaque strings. Lets the
	// control plane vary behavior across agent versions without a schema change.
	Capabilities []string `protobuf:"bytes,2,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
	// contains filtered or unexported fields
}

func (*AgentInfo) Descriptor deprecated

func (*AgentInfo) Descriptor() ([]byte, []int)

Deprecated: Use AgentInfo.ProtoReflect.Descriptor instead.

func (*AgentInfo) GetCapabilities

func (x *AgentInfo) GetCapabilities() []string

func (*AgentInfo) GetVersion

func (x *AgentInfo) GetVersion() string

func (*AgentInfo) ProtoMessage

func (*AgentInfo) ProtoMessage()

func (*AgentInfo) ProtoReflect

func (x *AgentInfo) ProtoReflect() protoreflect.Message

func (*AgentInfo) Reset

func (x *AgentInfo) Reset()

func (*AgentInfo) String

func (x *AgentInfo) String() string

type AgentServiceClient

type AgentServiceClient interface {
	// The desired-state sync stream. Lifecycle:
	//  1. Agent connects and sends Hello (agent info, host facts, last
	//     applied policy version — 0 if none).
	//  2. Server replies HelloAck (sync configuration), then unconditionally
	//     sends a PolicySnapshot. Deltas are only ever sent within a live
	//     stream, after the snapshot; reconnection always restarts from a
	//     snapshot. This trades a few kilobytes on reconnect for the
	//     elimination of cross-session divergence as a failure class.
	//  3. Server pipelines PolicyUpdates without waiting for acks. The agent
	//     applies updates strictly in order and acks each one. Apply is
	//     atomic: on failure the agent remains on its last good version and
	//     acks FAILED, and the server's recovery move is a fresh snapshot,
	//     never a retried delta.
	//
	// Low-volume control traffic only. Flow telemetry is deliberately a
	// separate RPC so that reporting volume can never head-of-line-block a
	// policy update.
	Sync(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[SyncRequest, SyncResponse], error)
	// High-volume, loss-tolerant flow telemetry. The agent aggregates flows
	// over the window configured in SyncConfig and uploads batches. The
	// response is returned when the client closes the stream.
	ReportFlows(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[ReportFlowsRequest, ReportFlowsResponse], error)
	// Rotate the workload credential before expiry. Authenticated by the
	// current credential; the renewed credential binds the same identity.
	RenewCredential(ctx context.Context, in *RenewCredentialRequest, opts ...grpc.CallOption) (*RenewCredentialResponse, error)
}

AgentServiceClient is the client API for AgentService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type AgentServiceServer

type AgentServiceServer interface {
	// The desired-state sync stream. Lifecycle:
	//  1. Agent connects and sends Hello (agent info, host facts, last
	//     applied policy version — 0 if none).
	//  2. Server replies HelloAck (sync configuration), then unconditionally
	//     sends a PolicySnapshot. Deltas are only ever sent within a live
	//     stream, after the snapshot; reconnection always restarts from a
	//     snapshot. This trades a few kilobytes on reconnect for the
	//     elimination of cross-session divergence as a failure class.
	//  3. Server pipelines PolicyUpdates without waiting for acks. The agent
	//     applies updates strictly in order and acks each one. Apply is
	//     atomic: on failure the agent remains on its last good version and
	//     acks FAILED, and the server's recovery move is a fresh snapshot,
	//     never a retried delta.
	//
	// Low-volume control traffic only. Flow telemetry is deliberately a
	// separate RPC so that reporting volume can never head-of-line-block a
	// policy update.
	Sync(grpc.BidiStreamingServer[SyncRequest, SyncResponse]) error
	// High-volume, loss-tolerant flow telemetry. The agent aggregates flows
	// over the window configured in SyncConfig and uploads batches. The
	// response is returned when the client closes the stream.
	ReportFlows(grpc.ClientStreamingServer[ReportFlowsRequest, ReportFlowsResponse]) error
	// Rotate the workload credential before expiry. Authenticated by the
	// current credential; the renewed credential binds the same identity.
	RenewCredential(context.Context, *RenewCredentialRequest) (*RenewCredentialResponse, error)
	// contains filtered or unexported methods
}

AgentServiceServer is the server API for AgentService service. All implementations must embed UnimplementedAgentServiceServer for forward compatibility.

type AgentService_ReportFlowsClient

type AgentService_ReportFlowsClient = grpc.ClientStreamingClient[ReportFlowsRequest, ReportFlowsResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AgentService_ReportFlowsServer

type AgentService_ReportFlowsServer = grpc.ClientStreamingServer[ReportFlowsRequest, ReportFlowsResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AgentService_SyncClient

type AgentService_SyncClient = grpc.BidiStreamingClient[SyncRequest, SyncResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type AgentService_SyncServer

type AgentService_SyncServer = grpc.BidiStreamingServer[SyncRequest, SyncResponse]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DeltaChange

type DeltaChange struct {

	// Types that are valid to be assigned to Change:
	//
	//	*DeltaChange_UpsertRule
	//	*DeltaChange_RemoveRuleId
	//	*DeltaChange_AddPeers
	//	*DeltaChange_RemovePeers
	//	*DeltaChange_SetMode
	Change isDeltaChange_Change `protobuf_oneof:"change"`
	// contains filtered or unexported fields
}

func (*DeltaChange) Descriptor deprecated

func (*DeltaChange) Descriptor() ([]byte, []int)

Deprecated: Use DeltaChange.ProtoReflect.Descriptor instead.

func (*DeltaChange) GetAddPeers

func (x *DeltaChange) GetAddPeers() *PeerChange

func (*DeltaChange) GetChange

func (x *DeltaChange) GetChange() isDeltaChange_Change

func (*DeltaChange) GetRemovePeers

func (x *DeltaChange) GetRemovePeers() *PeerChange

func (*DeltaChange) GetRemoveRuleId

func (x *DeltaChange) GetRemoveRuleId() string

func (*DeltaChange) GetSetMode

func (x *DeltaChange) GetSetMode() EnforcementMode

func (*DeltaChange) GetUpsertRule

func (x *DeltaChange) GetUpsertRule() *ResolvedRule

func (*DeltaChange) ProtoMessage

func (*DeltaChange) ProtoMessage()

func (*DeltaChange) ProtoReflect

func (x *DeltaChange) ProtoReflect() protoreflect.Message

func (*DeltaChange) Reset

func (x *DeltaChange) Reset()

func (*DeltaChange) String

func (x *DeltaChange) String() string

type DeltaChange_AddPeers

type DeltaChange_AddPeers struct {
	// Add peers to an existing resolved rule's peer set.
	AddPeers *PeerChange `protobuf:"bytes,3,opt,name=add_peers,json=addPeers,proto3,oneof"`
}

type DeltaChange_RemovePeers

type DeltaChange_RemovePeers struct {
	// Remove peers from an existing resolved rule's peer set.
	RemovePeers *PeerChange `protobuf:"bytes,4,opt,name=remove_peers,json=removePeers,proto3,oneof"`
}

type DeltaChange_RemoveRuleId

type DeltaChange_RemoveRuleId struct {
	// Remove a resolved rule by its id (see ResolvedRule.rule_id).
	RemoveRuleId string `protobuf:"bytes,2,opt,name=remove_rule_id,json=removeRuleId,proto3,oneof"`
}

type DeltaChange_SetMode

type DeltaChange_SetMode struct {
	// Change the workload's enforcement mode.
	SetMode EnforcementMode `protobuf:"varint,5,opt,name=set_mode,json=setMode,proto3,enum=innerwall.v1.EnforcementMode,oneof"`
}

type DeltaChange_UpsertRule

type DeltaChange_UpsertRule struct {
	// Add a new resolved rule, or replace an existing one wholesale.
	UpsertRule *ResolvedRule `protobuf:"bytes,1,opt,name=upsert_rule,json=upsertRule,proto3,oneof"`
}

type Direction

type Direction int32

Traffic direction relative to the workloads in a ruleset's scope. Both values are defined now so that enabling outbound later is an admission-validation change, not a schema change (ADR-0010). In v1 the control plane rejects any rule with DIRECTION_OUTBOUND at admission.

const (
	Direction_DIRECTION_UNSPECIFIED Direction = 0
	Direction_DIRECTION_INBOUND     Direction = 1
	Direction_DIRECTION_OUTBOUND    Direction = 2
)

func (Direction) Descriptor

func (Direction) Descriptor() protoreflect.EnumDescriptor

func (Direction) Enum

func (x Direction) Enum() *Direction

func (Direction) EnumDescriptor deprecated

func (Direction) EnumDescriptor() ([]byte, []int)

Deprecated: Use Direction.Descriptor instead.

func (Direction) Number

func (x Direction) Number() protoreflect.EnumNumber

func (Direction) String

func (x Direction) String() string

func (Direction) Type

type Directive

type Directive struct {

	// Types that are valid to be assigned to Directive:
	//
	//	*Directive_Reconnect
	//	*Directive_Reenroll
	Directive isDirective_Directive `protobuf_oneof:"directive"`
	// contains filtered or unexported fields
}

Server-initiated commands. Modeled as a oneof of messages rather than an enum so future directives can carry payloads without a breaking change.

func (*Directive) Descriptor deprecated

func (*Directive) Descriptor() ([]byte, []int)

Deprecated: Use Directive.ProtoReflect.Descriptor instead.

func (*Directive) GetDirective

func (x *Directive) GetDirective() isDirective_Directive

func (*Directive) GetReconnect

func (x *Directive) GetReconnect() *Reconnect

func (*Directive) GetReenroll

func (x *Directive) GetReenroll() *Reenroll

func (*Directive) ProtoMessage

func (*Directive) ProtoMessage()

func (*Directive) ProtoReflect

func (x *Directive) ProtoReflect() protoreflect.Message

func (*Directive) Reset

func (x *Directive) Reset()

func (*Directive) String

func (x *Directive) String() string

type Directive_Reconnect

type Directive_Reconnect struct {
	// Tear down and re-establish the sync stream (which restarts from a
	// snapshot by the stream lifecycle rules).
	Reconnect *Reconnect `protobuf:"bytes,1,opt,name=reconnect,proto3,oneof"`
}

type Directive_Reenroll

type Directive_Reenroll struct {
	// Never sent; deprecated and reserved-unused. The control plane does
	// not direct re-enrollment: a workload whose credential is past the
	// renewal grace is refused, with a reason naming re-enrollment, at
	// renewal and at stream open, and its agent keeps enforcing from disk
	// and retrying until the operator enrolls the host again with a new
	// provisioning token. The field stays so its number is never reassigned,
	// and agents keep handling it for wire compatibility (ADR-0015 as
	// amended).
	Reenroll *Reenroll `protobuf:"bytes,2,opt,name=reenroll,proto3,oneof"`
}

type EnforcementMode

type EnforcementMode int32

How the agent treats traffic that the rendered policy would deny. Progression is visibility -> simulation -> enforced: policy is authored and validated against observed traffic before anything is dropped.

const (
	EnforcementMode_ENFORCEMENT_MODE_UNSPECIFIED EnforcementMode = 0
	// Observe and report flows only. No policy evaluation required.
	EnforcementMode_ENFORCEMENT_MODE_VISIBILITY EnforcementMode = 1
	// Evaluate rendered policy against observed flows and report would-be
	// denials, but drop nothing.
	EnforcementMode_ENFORCEMENT_MODE_SIMULATION EnforcementMode = 2
	// Evaluate rendered policy and drop denied traffic.
	EnforcementMode_ENFORCEMENT_MODE_ENFORCED EnforcementMode = 3
)

func (EnforcementMode) Descriptor

func (EnforcementMode) Enum

func (x EnforcementMode) Enum() *EnforcementMode

func (EnforcementMode) EnumDescriptor deprecated

func (EnforcementMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use EnforcementMode.Descriptor instead.

func (EnforcementMode) Number

func (EnforcementMode) String

func (x EnforcementMode) String() string

func (EnforcementMode) Type

type EnrollRequest

type EnrollRequest struct {

	// Provisioning token. Tokens are scoped, not single-use: a token minted for
	// a label set can enroll many workloads (baked into an image or provisioning
	// pipeline), and the control plane assigns that label set at enrollment.
	ProvisioningToken string `protobuf:"bytes,1,opt,name=provisioning_token,json=provisioningToken,proto3" json:"provisioning_token,omitempty"`
	// PKCS#10 certificate signing request, PEM-encoded. The private key never
	// leaves the host.
	CsrPem []byte `protobuf:"bytes,2,opt,name=csr_pem,json=csrPem,proto3" json:"csr_pem,omitempty"`
	// Host facts observed at enrollment time. Descriptive only — facts never
	// influence identity or authorization (ADR-0004).
	Facts *HostFacts `protobuf:"bytes,3,opt,name=facts,proto3" json:"facts,omitempty"`
	// contains filtered or unexported fields
}

func (*EnrollRequest) Descriptor deprecated

func (*EnrollRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnrollRequest.ProtoReflect.Descriptor instead.

func (*EnrollRequest) GetCsrPem

func (x *EnrollRequest) GetCsrPem() []byte

func (*EnrollRequest) GetFacts

func (x *EnrollRequest) GetFacts() *HostFacts

func (*EnrollRequest) GetProvisioningToken

func (x *EnrollRequest) GetProvisioningToken() string

func (*EnrollRequest) ProtoMessage

func (*EnrollRequest) ProtoMessage()

func (*EnrollRequest) ProtoReflect

func (x *EnrollRequest) ProtoReflect() protoreflect.Message

func (*EnrollRequest) Reset

func (x *EnrollRequest) Reset()

func (*EnrollRequest) String

func (x *EnrollRequest) String() string

type EnrollResponse

type EnrollResponse struct {

	// The identity granted to this workload. Also bound into the issued
	// credential; from this point on, identity is always taken from the
	// connection credential, and this field exists for agent-side logging
	// and diagnostics only.
	WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"`
	// Signed client certificate, PEM-encoded.
	CertificatePem []byte `protobuf:"bytes,2,opt,name=certificate_pem,json=certificatePem,proto3" json:"certificate_pem,omitempty"`
	// CA bundle for verifying the control plane, PEM-encoded.
	CaBundlePem []byte `protobuf:"bytes,3,opt,name=ca_bundle_pem,json=caBundlePem,proto3" json:"ca_bundle_pem,omitempty"`
	// Labels assigned from the provisioning token's scope.
	AssignedLabels []*Label `protobuf:"bytes,4,rep,name=assigned_labels,json=assignedLabels,proto3" json:"assigned_labels,omitempty"`
	// contains filtered or unexported fields
}

func (*EnrollResponse) Descriptor deprecated

func (*EnrollResponse) Descriptor() ([]byte, []int)

Deprecated: Use EnrollResponse.ProtoReflect.Descriptor instead.

func (*EnrollResponse) GetAssignedLabels

func (x *EnrollResponse) GetAssignedLabels() []*Label

func (*EnrollResponse) GetCaBundlePem

func (x *EnrollResponse) GetCaBundlePem() []byte

func (*EnrollResponse) GetCertificatePem

func (x *EnrollResponse) GetCertificatePem() []byte

func (*EnrollResponse) GetWorkloadId

func (x *EnrollResponse) GetWorkloadId() string

func (*EnrollResponse) ProtoMessage

func (*EnrollResponse) ProtoMessage()

func (*EnrollResponse) ProtoReflect

func (x *EnrollResponse) ProtoReflect() protoreflect.Message

func (*EnrollResponse) Reset

func (x *EnrollResponse) Reset()

func (*EnrollResponse) String

func (x *EnrollResponse) String() string

type EnrollmentServiceClient

type EnrollmentServiceClient interface {
	// Exchange a provisioning token and a certificate signing request for a
	// workload identity and signed credential.
	Enroll(ctx context.Context, in *EnrollRequest, opts ...grpc.CallOption) (*EnrollResponse, error)
}

EnrollmentServiceClient is the client API for EnrollmentService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type EnrollmentServiceServer

type EnrollmentServiceServer interface {
	// Exchange a provisioning token and a certificate signing request for a
	// workload identity and signed credential.
	Enroll(context.Context, *EnrollRequest) (*EnrollResponse, error)
	// contains filtered or unexported methods
}

EnrollmentServiceServer is the server API for EnrollmentService service. All implementations must embed UnimplementedEnrollmentServiceServer for forward compatibility.

type EvidenceGap

type EvidenceGap struct {
	Kind EvidenceGapKind `protobuf:"varint,1,opt,name=kind,proto3,enum=innerwall.v1.EvidenceGapKind" json:"kind,omitempty"`
	// The source that lost the evidence; unspecified for a loss that is not
	// one source's (a buffer overflow drops records of every source).
	Source EvidenceSource         `protobuf:"varint,2,opt,name=source,proto3,enum=innerwall.v1.EvidenceSource" json:"source,omitempty"`
	From   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"`
	To     *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=to,proto3" json:"to,omitempty"`
	// How many records, table entries, or observations were lost, when that
	// is known: for a buffer overflow, a truncated dump, a window overflow,
	// and a rejected window. A kernel-side loss has no count.
	Count *uint64 `protobuf:"varint,5,opt,name=count,proto3,oneof" json:"count,omitempty"`
	// contains filtered or unexported fields
}

An interval [from, to) in which a workload's flow evidence is known to be incomplete: something was lost there that cannot be recovered, only bounded in time. Every kind of loss the agent can detect is expressed this way, so a reader asks one question of a time range: is the evidence in it whole?

func (*EvidenceGap) Descriptor deprecated

func (*EvidenceGap) Descriptor() ([]byte, []int)

Deprecated: Use EvidenceGap.ProtoReflect.Descriptor instead.

func (*EvidenceGap) GetCount

func (x *EvidenceGap) GetCount() uint64

func (*EvidenceGap) GetFrom

func (x *EvidenceGap) GetFrom() *timestamppb.Timestamp

func (*EvidenceGap) GetKind

func (x *EvidenceGap) GetKind() EvidenceGapKind

func (*EvidenceGap) GetSource

func (x *EvidenceGap) GetSource() EvidenceSource

func (*EvidenceGap) GetTo

func (x *EvidenceGap) GetTo() *timestamppb.Timestamp

func (*EvidenceGap) ProtoMessage

func (*EvidenceGap) ProtoMessage()

func (*EvidenceGap) ProtoReflect

func (x *EvidenceGap) ProtoReflect() protoreflect.Message

func (*EvidenceGap) Reset

func (x *EvidenceGap) Reset()

func (*EvidenceGap) String

func (x *EvidenceGap) String() string

type EvidenceGapKind

type EvidenceGapKind int32
const (
	EvidenceGapKind_EVIDENCE_GAP_KIND_UNSPECIFIED EvidenceGapKind = 0
	// The kernel dropped events because the source's socket buffer was full.
	EvidenceGapKind_EVIDENCE_GAP_KIND_SOURCE_OVERRUN EvidenceGapKind = 1
	// The source was down between a failure and its next subscribe.
	EvidenceGapKind_EVIDENCE_GAP_KIND_SOURCE_RESTART EvidenceGapKind = 2
	// Closed windows were dropped because the agent's buffer was full while
	// the control plane was unreachable.
	EvidenceGapKind_EVIDENCE_GAP_KIND_BUFFER_OVERFLOW EvidenceGapKind = 3
	// The connection table held more entries at subscribe than the source
	// processes; the interval runs from the subscribe to the last skipped
	// connection seen closing.
	EvidenceGapKind_EVIDENCE_GAP_KIND_DUMP_TRUNCATED EvidenceGapKind = 4
	// The open aggregation window held as many distinct keys as the agent
	// allows, and observations for new keys were dropped; the interval runs
	// from the first drop to the window's close, and the count is the
	// observations dropped.
	EvidenceGapKind_EVIDENCE_GAP_KIND_WINDOW_OVERFLOW EvidenceGapKind = 5
	// The control plane refused a closed window as malformed, and the agent
	// dropped it rather than retry a report that can never be accepted; the
	// interval is the window's bounds and the count is its records.
	EvidenceGapKind_EVIDENCE_GAP_KIND_WINDOW_REJECTED EvidenceGapKind = 6
	// The owned table was gone from the kernel, so neither the observation
	// that depends on it nor the classification its marks carry could be
	// trusted: the interval runs from the last instant the agent knew the
	// table present to the instant it was installed again, and is shipped in
	// pieces, one with each window, while the table stays gone. Not one
	// source's loss; no count.
	EvidenceGapKind_EVIDENCE_GAP_KIND_TABLE_REMOVED EvidenceGapKind = 7
	// The control plane received no flow report from the workload's agent
	// over the interval, and no window delivered afterwards covered it: the
	// agent process was down, or it lost what it would have reported. The
	// one kind the control plane derives itself, from the receipt instants
	// of consecutive reports; an agent cannot observe its own absence, so a
	// reported gap of this kind is refused at ingest. Not one source's
	// loss; no count.
	EvidenceGapKind_EVIDENCE_GAP_KIND_AGENT_SILENT EvidenceGapKind = 8
)

func (EvidenceGapKind) Descriptor

func (EvidenceGapKind) Enum

func (x EvidenceGapKind) Enum() *EvidenceGapKind

func (EvidenceGapKind) EnumDescriptor deprecated

func (EvidenceGapKind) EnumDescriptor() ([]byte, []int)

Deprecated: Use EvidenceGapKind.Descriptor instead.

func (EvidenceGapKind) Number

func (EvidenceGapKind) String

func (x EvidenceGapKind) String() string

func (EvidenceGapKind) Type

type EvidenceSource

type EvidenceSource int32

The agent's flow sources.

const (
	EvidenceSource_EVIDENCE_SOURCE_UNSPECIFIED EvidenceSource = 0
	// Connection tracking: connections and their bytes.
	EvidenceSource_EVIDENCE_SOURCE_CONNTRACK EvidenceSource = 1
	// The terminal rule's packet log: blocked and would-block attempts.
	EvidenceSource_EVIDENCE_SOURCE_NFLOG EvidenceSource = 2
)

func (EvidenceSource) Descriptor

func (EvidenceSource) Enum

func (x EvidenceSource) Enum() *EvidenceSource

func (EvidenceSource) EnumDescriptor deprecated

func (EvidenceSource) EnumDescriptor() ([]byte, []int)

Deprecated: Use EvidenceSource.Descriptor instead.

func (EvidenceSource) Number

func (EvidenceSource) String

func (x EvidenceSource) String() string

func (EvidenceSource) Type

type FlowRecord

type FlowRecord struct {
	SrcAddress string   `protobuf:"bytes,1,opt,name=src_address,json=srcAddress,proto3" json:"src_address,omitempty"`
	DstAddress string   `protobuf:"bytes,2,opt,name=dst_address,json=dstAddress,proto3" json:"dst_address,omitempty"`
	DstPort    uint32   `protobuf:"varint,3,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"`
	Protocol   Protocol `protobuf:"varint,4,opt,name=protocol,proto3,enum=innerwall.v1.Protocol" json:"protocol,omitempty"`
	// Direction relative to the reporting workload. Only DIRECTION_INBOUND is
	// produced in v1 (ADR-0010); the field exists so records are
	// self-describing when outbound observation lands.
	Direction Direction      `protobuf:"varint,5,opt,name=direction,proto3,enum=innerwall.v1.Direction" json:"direction,omitempty"`
	Decision  PolicyDecision `protobuf:"varint,6,opt,name=decision,proto3,enum=innerwall.v1.PolicyDecision" json:"decision,omitempty"`
	// The rendered rule that matched, when a policy evaluation occurred.
	// Empty for OBSERVED records and for flows no rule matched.
	MatchedRuleId string `protobuf:"bytes,7,opt,name=matched_rule_id,json=matchedRuleId,proto3" json:"matched_rule_id,omitempty"`
	// Connections opened, or found live when the source subscribed, in the
	// window. A connection that predates the source's subscription (at agent
	// start, or after the source restarted) is counted once, first seen at
	// the subscription; one whose close is the first the source saw of it is
	// counted at its close.
	ConnectionCount uint64                 `protobuf:"varint,8,opt,name=connection_count,json=connectionCount,proto3" json:"connection_count,omitempty"`
	ByteCount       uint64                 `protobuf:"varint,9,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
	FirstSeen       *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=first_seen,json=firstSeen,proto3" json:"first_seen,omitempty"`
	LastSeen        *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"`
	// Best-effort process attribution on the reporting host.
	ProcessName string `protobuf:"bytes,12,opt,name=process_name,json=processName,proto3" json:"process_name,omitempty"`
	// contains filtered or unexported fields
}

An aggregated flow observation. Flows are aggregated per unique (src_address, dst_address, dst_port, protocol, direction, decision, matched_rule_id) within the reporting window: two records alike in every other key but admitted by different rules stay two records. The ephemeral source port is deliberately not part of the record, since it carries no policy meaning and would defeat aggregation.

func (*FlowRecord) Descriptor deprecated

func (*FlowRecord) Descriptor() ([]byte, []int)

Deprecated: Use FlowRecord.ProtoReflect.Descriptor instead.

func (*FlowRecord) GetByteCount

func (x *FlowRecord) GetByteCount() uint64

func (*FlowRecord) GetConnectionCount

func (x *FlowRecord) GetConnectionCount() uint64

func (*FlowRecord) GetDecision

func (x *FlowRecord) GetDecision() PolicyDecision

func (*FlowRecord) GetDirection

func (x *FlowRecord) GetDirection() Direction

func (*FlowRecord) GetDstAddress

func (x *FlowRecord) GetDstAddress() string

func (*FlowRecord) GetDstPort

func (x *FlowRecord) GetDstPort() uint32

func (*FlowRecord) GetFirstSeen

func (x *FlowRecord) GetFirstSeen() *timestamppb.Timestamp

func (*FlowRecord) GetLastSeen

func (x *FlowRecord) GetLastSeen() *timestamppb.Timestamp

func (*FlowRecord) GetMatchedRuleId

func (x *FlowRecord) GetMatchedRuleId() string

func (*FlowRecord) GetProcessName

func (x *FlowRecord) GetProcessName() string

func (*FlowRecord) GetProtocol

func (x *FlowRecord) GetProtocol() Protocol

func (*FlowRecord) GetSrcAddress

func (x *FlowRecord) GetSrcAddress() string

func (*FlowRecord) ProtoMessage

func (*FlowRecord) ProtoMessage()

func (*FlowRecord) ProtoReflect

func (x *FlowRecord) ProtoReflect() protoreflect.Message

func (*FlowRecord) Reset

func (x *FlowRecord) Reset()

func (*FlowRecord) String

func (x *FlowRecord) String() string

type Heartbeat

type Heartbeat struct {
	UptimeSeconds uint64 `protobuf:"varint,1,opt,name=uptime_seconds,json=uptimeSeconds,proto3" json:"uptime_seconds,omitempty"`
	// Flow records dropped by the agent since the stream opened (buffer
	// pressure). Non-zero values tell the operator that the flow map is
	// incomplete before they trust it for policy authoring.
	DroppedFlowRecords uint64 `protobuf:"varint,2,opt,name=dropped_flow_records,json=droppedFlowRecords,proto3" json:"dropped_flow_records,omitempty"`
	// The reason the most recent automatic credential renewal failed, or
	// empty when the last attempt succeeded or none has been due yet. A
	// workload that keeps reporting a reason is heading for expiry and
	// re-enrollment; surfacing it here lets the operator act before the
	// credential lapses (ADR-0016).
	CredentialRenewalError string `` /* 129-byte string literal not displayed */
	// Kernel-side overruns of the agent's flow sources since the agent
	// started: each is a moment the kernel dropped events because a source
	// fell behind. Each is also reported as an EvidenceGap with its interval;
	// this is the live counter beside dropped_flow_records.
	SourceOverruns uint64 `protobuf:"varint,4,opt,name=source_overruns,json=sourceOverruns,proto3" json:"source_overruns,omitempty"`
	// Whether the Innerwall-owned firewall table is in the kernel, read when
	// this heartbeat is composed. Everything the agent enforces and observes
	// lives in that table, and the local kill switch removes it without the
	// control plane (ADR-0011), so the version the agent last acknowledged
	// says nothing about whether it is still installed; this does.
	// UNSPECIFIED from an agent that predates the field, from one that has
	// installed nothing yet, or when the read failed.
	OwnedTable OwnedTableState `` /* 126-byte string literal not displayed */
	// contains filtered or unexported fields
}

Lightweight liveness signal with backpressure visibility.

func (*Heartbeat) Descriptor deprecated

func (*Heartbeat) Descriptor() ([]byte, []int)

Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead.

func (*Heartbeat) GetCredentialRenewalError

func (x *Heartbeat) GetCredentialRenewalError() string

func (*Heartbeat) GetDroppedFlowRecords

func (x *Heartbeat) GetDroppedFlowRecords() uint64

func (*Heartbeat) GetOwnedTable added in v0.2.0

func (x *Heartbeat) GetOwnedTable() OwnedTableState

func (*Heartbeat) GetSourceOverruns

func (x *Heartbeat) GetSourceOverruns() uint64

func (*Heartbeat) GetUptimeSeconds

func (x *Heartbeat) GetUptimeSeconds() uint64

func (*Heartbeat) ProtoMessage

func (*Heartbeat) ProtoMessage()

func (*Heartbeat) ProtoReflect

func (x *Heartbeat) ProtoReflect() protoreflect.Message

func (*Heartbeat) Reset

func (x *Heartbeat) Reset()

func (*Heartbeat) String

func (x *Heartbeat) String() string

type Hello

type Hello struct {
	Agent *AgentInfo `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"`
	// The policy version currently applied on the host; 0 if none. Informs
	// server-side status only — the server always responds with a snapshot
	// regardless of this value.
	AppliedPolicyVersion uint64     `protobuf:"varint,2,opt,name=applied_policy_version,json=appliedPolicyVersion,proto3" json:"applied_policy_version,omitempty"`
	Facts                *HostFacts `protobuf:"bytes,3,opt,name=facts,proto3" json:"facts,omitempty"`
	// contains filtered or unexported fields
}

First message on every stream, agent -> server.

func (*Hello) Descriptor deprecated

func (*Hello) Descriptor() ([]byte, []int)

Deprecated: Use Hello.ProtoReflect.Descriptor instead.

func (*Hello) GetAgent

func (x *Hello) GetAgent() *AgentInfo

func (*Hello) GetAppliedPolicyVersion

func (x *Hello) GetAppliedPolicyVersion() uint64

func (*Hello) GetFacts

func (x *Hello) GetFacts() *HostFacts

func (*Hello) ProtoMessage

func (*Hello) ProtoMessage()

func (*Hello) ProtoReflect

func (x *Hello) ProtoReflect() protoreflect.Message

func (*Hello) Reset

func (x *Hello) Reset()

func (*Hello) String

func (x *Hello) String() string

type HelloAck

type HelloAck struct {
	Config *SyncConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// contains filtered or unexported fields
}

First server message on every stream.

func (*HelloAck) Descriptor deprecated

func (*HelloAck) Descriptor() ([]byte, []int)

Deprecated: Use HelloAck.ProtoReflect.Descriptor instead.

func (*HelloAck) GetConfig

func (x *HelloAck) GetConfig() *SyncConfig

func (*HelloAck) ProtoMessage

func (*HelloAck) ProtoMessage()

func (*HelloAck) ProtoReflect

func (x *HelloAck) ProtoReflect() protoreflect.Message

func (*HelloAck) Reset

func (x *HelloAck) Reset()

func (*HelloAck) String

func (x *HelloAck) String() string

type HostFacts

type HostFacts struct {
	Hostname   string              `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Os         *OsInfo             `protobuf:"bytes,2,opt,name=os,proto3" json:"os,omitempty"`
	Interfaces []*NetworkInterface `protobuf:"bytes,3,rep,name=interfaces,proto3" json:"interfaces,omitempty"`
	// contains filtered or unexported fields
}

Facts observed on the host by the agent. Reported at enrollment and refreshed via inventory reports on the sync stream. Facts are descriptive inventory only — they never confer identity (ADR-0004) and never carry labels (see Label).

func (*HostFacts) Descriptor deprecated

func (*HostFacts) Descriptor() ([]byte, []int)

Deprecated: Use HostFacts.ProtoReflect.Descriptor instead.

func (*HostFacts) GetHostname

func (x *HostFacts) GetHostname() string

func (*HostFacts) GetInterfaces

func (x *HostFacts) GetInterfaces() []*NetworkInterface

func (*HostFacts) GetOs

func (x *HostFacts) GetOs() *OsInfo

func (*HostFacts) ProtoMessage

func (*HostFacts) ProtoMessage()

func (*HostFacts) ProtoReflect

func (x *HostFacts) ProtoReflect() protoreflect.Message

func (*HostFacts) Reset

func (x *HostFacts) Reset()

func (*HostFacts) String

func (x *HostFacts) String() string

type InventoryReport

type InventoryReport struct {
	Facts             *HostFacts          `protobuf:"bytes,1,opt,name=facts,proto3" json:"facts,omitempty"`
	ListeningServices []*ListeningService `protobuf:"bytes,2,rep,name=listening_services,json=listeningServices,proto3" json:"listening_services,omitempty"`
	// contains filtered or unexported fields
}

Periodic inventory refresh, agent -> server.

func (*InventoryReport) Descriptor deprecated

func (*InventoryReport) Descriptor() ([]byte, []int)

Deprecated: Use InventoryReport.ProtoReflect.Descriptor instead.

func (*InventoryReport) GetFacts

func (x *InventoryReport) GetFacts() *HostFacts

func (*InventoryReport) GetListeningServices

func (x *InventoryReport) GetListeningServices() []*ListeningService

func (*InventoryReport) ProtoMessage

func (*InventoryReport) ProtoMessage()

func (*InventoryReport) ProtoReflect

func (x *InventoryReport) ProtoReflect() protoreflect.Message

func (*InventoryReport) Reset

func (x *InventoryReport) Reset()

func (*InventoryReport) String

func (x *InventoryReport) String() string

type Label

type Label struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

A key/value pair attached to a workload. Labels are assigned by the control plane — at enrollment (derived from the provisioning token's scope) or later by an operator. Agents never self-assign labels; an agent-supplied label would let a compromised host place itself into a more permissive policy scope. Policy selectors (policy.proto) match against these values.

func (*Label) Descriptor deprecated

func (*Label) Descriptor() ([]byte, []int)

Deprecated: Use Label.ProtoReflect.Descriptor instead.

func (*Label) GetKey

func (x *Label) GetKey() string

func (*Label) GetValue

func (x *Label) GetValue() string

func (*Label) ProtoMessage

func (*Label) ProtoMessage()

func (*Label) ProtoReflect

func (x *Label) ProtoReflect() protoreflect.Message

func (*Label) Reset

func (x *Label) Reset()

func (*Label) String

func (x *Label) String() string

type LabelMatch

type LabelMatch struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The label value must equal one of these.
	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	// contains filtered or unexported fields
}

func (*LabelMatch) Descriptor deprecated

func (*LabelMatch) Descriptor() ([]byte, []int)

Deprecated: Use LabelMatch.ProtoReflect.Descriptor instead.

func (*LabelMatch) GetKey

func (x *LabelMatch) GetKey() string

func (*LabelMatch) GetValues

func (x *LabelMatch) GetValues() []string

func (*LabelMatch) ProtoMessage

func (*LabelMatch) ProtoMessage()

func (*LabelMatch) ProtoReflect

func (x *LabelMatch) ProtoReflect() protoreflect.Message

func (*LabelMatch) Reset

func (x *LabelMatch) Reset()

func (*LabelMatch) String

func (x *LabelMatch) String() string

type LabelSelector

type LabelSelector struct {
	Matches []*LabelMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
	// contains filtered or unexported fields
}

Matches workloads by label. Requirements are ANDed across matches; values within a match are ORed. An empty selector matches nothing (never everything): breadth must be stated explicitly, not reached by omission.

func (*LabelSelector) Descriptor deprecated

func (*LabelSelector) Descriptor() ([]byte, []int)

Deprecated: Use LabelSelector.ProtoReflect.Descriptor instead.

func (*LabelSelector) GetMatches

func (x *LabelSelector) GetMatches() []*LabelMatch

func (*LabelSelector) ProtoMessage

func (*LabelSelector) ProtoMessage()

func (*LabelSelector) ProtoReflect

func (x *LabelSelector) ProtoReflect() protoreflect.Message

func (*LabelSelector) Reset

func (x *LabelSelector) Reset()

func (*LabelSelector) String

func (x *LabelSelector) String() string

type ListeningService

type ListeningService struct {
	Protocol    Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=innerwall.v1.Protocol" json:"protocol,omitempty"`
	Port        uint32   `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	ProcessName string   `protobuf:"bytes,3,opt,name=process_name,json=processName,proto3" json:"process_name,omitempty"`
	ProcessPath string   `protobuf:"bytes,4,opt,name=process_path,json=processPath,proto3" json:"process_path,omitempty"`
	// contains filtered or unexported fields
}

A service listening on the host. Combined with observed flows, this is what makes policy authoring tractable during the visibility phase: the operator sees both what is exposed and what actually connects to it.

func (*ListeningService) Descriptor deprecated

func (*ListeningService) Descriptor() ([]byte, []int)

Deprecated: Use ListeningService.ProtoReflect.Descriptor instead.

func (*ListeningService) GetPort

func (x *ListeningService) GetPort() uint32

func (*ListeningService) GetProcessName

func (x *ListeningService) GetProcessName() string

func (*ListeningService) GetProcessPath

func (x *ListeningService) GetProcessPath() string

func (*ListeningService) GetProtocol

func (x *ListeningService) GetProtocol() Protocol

func (*ListeningService) ProtoMessage

func (*ListeningService) ProtoMessage()

func (*ListeningService) ProtoReflect

func (x *ListeningService) ProtoReflect() protoreflect.Message

func (*ListeningService) Reset

func (x *ListeningService) Reset()

func (*ListeningService) String

func (x *ListeningService) String() string

type NetworkInterface

type NetworkInterface struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Addresses in CIDR notation (e.g. "10.0.4.17/24").
	Addresses  []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"`
	MacAddress string   `protobuf:"bytes,3,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
	// contains filtered or unexported fields
}

func (*NetworkInterface) Descriptor deprecated

func (*NetworkInterface) Descriptor() ([]byte, []int)

Deprecated: Use NetworkInterface.ProtoReflect.Descriptor instead.

func (*NetworkInterface) GetAddresses

func (x *NetworkInterface) GetAddresses() []string

func (*NetworkInterface) GetMacAddress

func (x *NetworkInterface) GetMacAddress() string

func (*NetworkInterface) GetName

func (x *NetworkInterface) GetName() string

func (*NetworkInterface) ProtoMessage

func (*NetworkInterface) ProtoMessage()

func (*NetworkInterface) ProtoReflect

func (x *NetworkInterface) ProtoReflect() protoreflect.Message

func (*NetworkInterface) Reset

func (x *NetworkInterface) Reset()

func (*NetworkInterface) String

func (x *NetworkInterface) String() string

type OsInfo

type OsInfo struct {

	// Broad family, e.g. "linux".
	Family string `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	// Distribution or product name.
	Name          string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Version       string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	KernelVersion string `protobuf:"bytes,4,opt,name=kernel_version,json=kernelVersion,proto3" json:"kernel_version,omitempty"`
	Architecture  string `protobuf:"bytes,5,opt,name=architecture,proto3" json:"architecture,omitempty"`
	// contains filtered or unexported fields
}

func (*OsInfo) Descriptor deprecated

func (*OsInfo) Descriptor() ([]byte, []int)

Deprecated: Use OsInfo.ProtoReflect.Descriptor instead.

func (*OsInfo) GetArchitecture

func (x *OsInfo) GetArchitecture() string

func (*OsInfo) GetFamily

func (x *OsInfo) GetFamily() string

func (*OsInfo) GetKernelVersion

func (x *OsInfo) GetKernelVersion() string

func (*OsInfo) GetName

func (x *OsInfo) GetName() string

func (*OsInfo) GetVersion

func (x *OsInfo) GetVersion() string

func (*OsInfo) ProtoMessage

func (*OsInfo) ProtoMessage()

func (*OsInfo) ProtoReflect

func (x *OsInfo) ProtoReflect() protoreflect.Message

func (*OsInfo) Reset

func (x *OsInfo) Reset()

func (*OsInfo) String

func (x *OsInfo) String() string

type OwnedTableState added in v0.2.0

type OwnedTableState int32

The owned table as a heartbeat found it in the kernel.

const (
	OwnedTableState_OWNED_TABLE_STATE_UNSPECIFIED OwnedTableState = 0
	// The owned table is in the kernel.
	OwnedTableState_OWNED_TABLE_STATE_PRESENT OwnedTableState = 1
	// The agent installed a policy and the owned table is gone from the
	// kernel: nothing on the host is enforced or observed by Innerwall. The
	// installed policy stays on disk, and the agent's next apply or restart
	// reinstalls it; the agent never reinstalls on its own, because removing
	// the table is the kill switch.
	OwnedTableState_OWNED_TABLE_STATE_ABSENT OwnedTableState = 2
)

func (OwnedTableState) Descriptor added in v0.2.0

func (OwnedTableState) Enum added in v0.2.0

func (x OwnedTableState) Enum() *OwnedTableState

func (OwnedTableState) EnumDescriptor deprecated added in v0.2.0

func (OwnedTableState) EnumDescriptor() ([]byte, []int)

Deprecated: Use OwnedTableState.Descriptor instead.

func (OwnedTableState) Number added in v0.2.0

func (OwnedTableState) String added in v0.2.0

func (x OwnedTableState) String() string

func (OwnedTableState) Type added in v0.2.0

type PeerChange

type PeerChange struct {

	// The resolved rule's id (see ResolvedRule.rule_id).
	RuleId    string   `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
	PeerCidrs []string `protobuf:"bytes,2,rep,name=peer_cidrs,json=peerCidrs,proto3" json:"peer_cidrs,omitempty"`
	// contains filtered or unexported fields
}

func (*PeerChange) Descriptor deprecated

func (*PeerChange) Descriptor() ([]byte, []int)

Deprecated: Use PeerChange.ProtoReflect.Descriptor instead.

func (*PeerChange) GetPeerCidrs

func (x *PeerChange) GetPeerCidrs() []string

func (*PeerChange) GetRuleId

func (x *PeerChange) GetRuleId() string

func (*PeerChange) ProtoMessage

func (*PeerChange) ProtoMessage()

func (*PeerChange) ProtoReflect

func (x *PeerChange) ProtoReflect() protoreflect.Message

func (*PeerChange) Reset

func (x *PeerChange) Reset()

func (*PeerChange) String

func (x *PeerChange) String() string

type PeerSelector

type PeerSelector struct {

	// Types that are valid to be assigned to Peer:
	//
	//	*PeerSelector_Workloads
	//	*PeerSelector_AddressGroupId
	//	*PeerSelector_Cidr
	Peer isPeerSelector_Peer `protobuf_oneof:"peer"`
	// contains filtered or unexported fields
}

The remote end of a rule: managed workloads by selector, a named address group, or a literal CIDR.

func (*PeerSelector) Descriptor deprecated

func (*PeerSelector) Descriptor() ([]byte, []int)

Deprecated: Use PeerSelector.ProtoReflect.Descriptor instead.

func (*PeerSelector) GetAddressGroupId

func (x *PeerSelector) GetAddressGroupId() string

func (*PeerSelector) GetCidr

func (x *PeerSelector) GetCidr() string

func (*PeerSelector) GetPeer

func (x *PeerSelector) GetPeer() isPeerSelector_Peer

func (*PeerSelector) GetWorkloads

func (x *PeerSelector) GetWorkloads() *LabelSelector

func (*PeerSelector) ProtoMessage

func (*PeerSelector) ProtoMessage()

func (*PeerSelector) ProtoReflect

func (x *PeerSelector) ProtoReflect() protoreflect.Message

func (*PeerSelector) Reset

func (x *PeerSelector) Reset()

func (*PeerSelector) String

func (x *PeerSelector) String() string

type PeerSelector_AddressGroupId

type PeerSelector_AddressGroupId struct {
	AddressGroupId string `protobuf:"bytes,2,opt,name=address_group_id,json=addressGroupId,proto3,oneof"`
}

type PeerSelector_Cidr

type PeerSelector_Cidr struct {
	Cidr string `protobuf:"bytes,3,opt,name=cidr,proto3,oneof"`
}

type PeerSelector_Workloads

type PeerSelector_Workloads struct {
	Workloads *LabelSelector `protobuf:"bytes,1,opt,name=workloads,proto3,oneof"`
}

type PolicyAck

type PolicyAck struct {

	// The to-version of the update being acknowledged.
	Version uint64    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	Status  AckStatus `protobuf:"varint,2,opt,name=status,proto3,enum=innerwall.v1.AckStatus" json:"status,omitempty"`
	// Populated when status is FAILED.
	ErrorDetail string `protobuf:"bytes,3,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"`
	// contains filtered or unexported fields
}

func (*PolicyAck) Descriptor deprecated

func (*PolicyAck) Descriptor() ([]byte, []int)

Deprecated: Use PolicyAck.ProtoReflect.Descriptor instead.

func (*PolicyAck) GetErrorDetail

func (x *PolicyAck) GetErrorDetail() string

func (*PolicyAck) GetStatus

func (x *PolicyAck) GetStatus() AckStatus

func (*PolicyAck) GetVersion

func (x *PolicyAck) GetVersion() uint64

func (*PolicyAck) ProtoMessage

func (*PolicyAck) ProtoMessage()

func (*PolicyAck) ProtoReflect

func (x *PolicyAck) ProtoReflect() protoreflect.Message

func (*PolicyAck) Reset

func (x *PolicyAck) Reset()

func (*PolicyAck) String

func (x *PolicyAck) String() string

type PolicyDecision

type PolicyDecision int32

The outcome the policy engine reached (or would have reached) for a flow. WOULD_BLOCK is the load-bearing value for the simulation phase: it is the evidence that a policy is safe (or not) to enforce.

const (
	PolicyDecision_POLICY_DECISION_UNSPECIFIED PolicyDecision = 0
	// Observed in visibility mode; no policy evaluation was performed.
	PolicyDecision_POLICY_DECISION_OBSERVED PolicyDecision = 1
	// Permitted by the rendered policy.
	PolicyDecision_POLICY_DECISION_ALLOWED PolicyDecision = 2
	// Permitted (simulation mode), but the rendered policy would have denied it.
	PolicyDecision_POLICY_DECISION_WOULD_BLOCK PolicyDecision = 3
	// Denied and dropped (enforced mode).
	PolicyDecision_POLICY_DECISION_BLOCKED PolicyDecision = 4
)

func (PolicyDecision) Descriptor

func (PolicyDecision) Enum

func (x PolicyDecision) Enum() *PolicyDecision

func (PolicyDecision) EnumDescriptor deprecated

func (PolicyDecision) EnumDescriptor() ([]byte, []int)

Deprecated: Use PolicyDecision.Descriptor instead.

func (PolicyDecision) Number

func (PolicyDecision) String

func (x PolicyDecision) String() string

func (PolicyDecision) Type

type PolicyDelta

type PolicyDelta struct {
	FromVersion uint64         `protobuf:"varint,1,opt,name=from_version,json=fromVersion,proto3" json:"from_version,omitempty"`
	ToVersion   uint64         `protobuf:"varint,2,opt,name=to_version,json=toVersion,proto3" json:"to_version,omitempty"`
	Changes     []*DeltaChange `protobuf:"bytes,3,rep,name=changes,proto3" json:"changes,omitempty"`
	// contains filtered or unexported fields
}

An incremental change between two consecutive rendered versions. Only ever valid within the live stream on which the base version was established: from_version must equal the agent's currently applied version or the delta must be discarded and a snapshot requested.

func (*PolicyDelta) Descriptor deprecated

func (*PolicyDelta) Descriptor() ([]byte, []int)

Deprecated: Use PolicyDelta.ProtoReflect.Descriptor instead.

func (*PolicyDelta) GetChanges

func (x *PolicyDelta) GetChanges() []*DeltaChange

func (*PolicyDelta) GetFromVersion

func (x *PolicyDelta) GetFromVersion() uint64

func (*PolicyDelta) GetToVersion

func (x *PolicyDelta) GetToVersion() uint64

func (*PolicyDelta) ProtoMessage

func (*PolicyDelta) ProtoMessage()

func (*PolicyDelta) ProtoReflect

func (x *PolicyDelta) ProtoReflect() protoreflect.Message

func (*PolicyDelta) Reset

func (x *PolicyDelta) Reset()

func (*PolicyDelta) String

func (x *PolicyDelta) String() string

type PolicySnapshot

type PolicySnapshot struct {
	Policy *WorkloadPolicy `protobuf:"bytes,1,opt,name=policy,proto3" json:"policy,omitempty"`
	// contains filtered or unexported fields
}

Full desired state. Sent on every new sync stream (see agent.proto) and as the recovery path after a failed delta apply. Always replaces the agent's entire policy state.

func (*PolicySnapshot) Descriptor deprecated

func (*PolicySnapshot) Descriptor() ([]byte, []int)

Deprecated: Use PolicySnapshot.ProtoReflect.Descriptor instead.

func (*PolicySnapshot) GetPolicy

func (x *PolicySnapshot) GetPolicy() *WorkloadPolicy

func (*PolicySnapshot) ProtoMessage

func (*PolicySnapshot) ProtoMessage()

func (*PolicySnapshot) ProtoReflect

func (x *PolicySnapshot) ProtoReflect() protoreflect.Message

func (*PolicySnapshot) Reset

func (x *PolicySnapshot) Reset()

func (*PolicySnapshot) String

func (x *PolicySnapshot) String() string

type PolicyUpdate

type PolicyUpdate struct {

	// Types that are valid to be assigned to Update:
	//
	//	*PolicyUpdate_Snapshot
	//	*PolicyUpdate_Delta
	Update isPolicyUpdate_Update `protobuf_oneof:"update"`
	// contains filtered or unexported fields
}

func (*PolicyUpdate) Descriptor deprecated

func (*PolicyUpdate) Descriptor() ([]byte, []int)

Deprecated: Use PolicyUpdate.ProtoReflect.Descriptor instead.

func (*PolicyUpdate) GetDelta

func (x *PolicyUpdate) GetDelta() *PolicyDelta

func (*PolicyUpdate) GetSnapshot

func (x *PolicyUpdate) GetSnapshot() *PolicySnapshot

func (*PolicyUpdate) GetUpdate

func (x *PolicyUpdate) GetUpdate() isPolicyUpdate_Update

func (*PolicyUpdate) ProtoMessage

func (*PolicyUpdate) ProtoMessage()

func (*PolicyUpdate) ProtoReflect

func (x *PolicyUpdate) ProtoReflect() protoreflect.Message

func (*PolicyUpdate) Reset

func (x *PolicyUpdate) Reset()

func (*PolicyUpdate) String

func (x *PolicyUpdate) String() string

type PolicyUpdate_Delta

type PolicyUpdate_Delta struct {
	Delta *PolicyDelta `protobuf:"bytes,2,opt,name=delta,proto3,oneof"`
}

type PolicyUpdate_Snapshot

type PolicyUpdate_Snapshot struct {
	Snapshot *PolicySnapshot `protobuf:"bytes,1,opt,name=snapshot,proto3,oneof"`
}

type PortRange

type PortRange struct {
	Start uint32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	End   uint32 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
	// contains filtered or unexported fields
}

Inclusive port range. A single port is expressed as start == end.

func (*PortRange) Descriptor deprecated

func (*PortRange) Descriptor() ([]byte, []int)

Deprecated: Use PortRange.ProtoReflect.Descriptor instead.

func (*PortRange) GetEnd

func (x *PortRange) GetEnd() uint32

func (*PortRange) GetStart

func (x *PortRange) GetStart() uint32

func (*PortRange) ProtoMessage

func (*PortRange) ProtoMessage()

func (*PortRange) ProtoReflect

func (x *PortRange) ProtoReflect() protoreflect.Message

func (*PortRange) Reset

func (x *PortRange) Reset()

func (*PortRange) String

func (x *PortRange) String() string

type Protocol

type Protocol int32

Transport protocol vocabulary shared by policy definitions, flow records, and listening-service inventory.

const (
	Protocol_PROTOCOL_UNSPECIFIED Protocol = 0
	Protocol_PROTOCOL_TCP         Protocol = 1
	Protocol_PROTOCOL_UDP         Protocol = 2
	Protocol_PROTOCOL_ICMP        Protocol = 3
)

func (Protocol) Descriptor

func (Protocol) Descriptor() protoreflect.EnumDescriptor

func (Protocol) Enum

func (x Protocol) Enum() *Protocol

func (Protocol) EnumDescriptor deprecated

func (Protocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use Protocol.Descriptor instead.

func (Protocol) Number

func (x Protocol) Number() protoreflect.EnumNumber

func (Protocol) String

func (x Protocol) String() string

func (Protocol) Type

type Reconnect

type Reconnect struct {
	// contains filtered or unexported fields
}

func (*Reconnect) Descriptor deprecated

func (*Reconnect) Descriptor() ([]byte, []int)

Deprecated: Use Reconnect.ProtoReflect.Descriptor instead.

func (*Reconnect) ProtoMessage

func (*Reconnect) ProtoMessage()

func (*Reconnect) ProtoReflect

func (x *Reconnect) ProtoReflect() protoreflect.Message

func (*Reconnect) Reset

func (x *Reconnect) Reset()

func (*Reconnect) String

func (x *Reconnect) String() string

type Reenroll

type Reenroll struct {
	// contains filtered or unexported fields
}

func (*Reenroll) Descriptor deprecated

func (*Reenroll) Descriptor() ([]byte, []int)

Deprecated: Use Reenroll.ProtoReflect.Descriptor instead.

func (*Reenroll) ProtoMessage

func (*Reenroll) ProtoMessage()

func (*Reenroll) ProtoReflect

func (x *Reenroll) ProtoReflect() protoreflect.Message

func (*Reenroll) Reset

func (x *Reenroll) Reset()

func (*Reenroll) String

func (x *Reenroll) String() string

type RenewCredentialRequest

type RenewCredentialRequest struct {

	// PKCS#10 certificate signing request, PEM-encoded. The workload being
	// renewed is derived from the connection credential, not from the request.
	CsrPem []byte `protobuf:"bytes,1,opt,name=csr_pem,json=csrPem,proto3" json:"csr_pem,omitempty"`
	// contains filtered or unexported fields
}

func (*RenewCredentialRequest) Descriptor deprecated

func (*RenewCredentialRequest) Descriptor() ([]byte, []int)

Deprecated: Use RenewCredentialRequest.ProtoReflect.Descriptor instead.

func (*RenewCredentialRequest) GetCsrPem

func (x *RenewCredentialRequest) GetCsrPem() []byte

func (*RenewCredentialRequest) ProtoMessage

func (*RenewCredentialRequest) ProtoMessage()

func (*RenewCredentialRequest) ProtoReflect

func (x *RenewCredentialRequest) ProtoReflect() protoreflect.Message

func (*RenewCredentialRequest) Reset

func (x *RenewCredentialRequest) Reset()

func (*RenewCredentialRequest) String

func (x *RenewCredentialRequest) String() string

type RenewCredentialResponse

type RenewCredentialResponse struct {
	CertificatePem []byte `protobuf:"bytes,1,opt,name=certificate_pem,json=certificatePem,proto3" json:"certificate_pem,omitempty"`
	CaBundlePem    []byte `protobuf:"bytes,2,opt,name=ca_bundle_pem,json=caBundlePem,proto3" json:"ca_bundle_pem,omitempty"`
	// contains filtered or unexported fields
}

func (*RenewCredentialResponse) Descriptor deprecated

func (*RenewCredentialResponse) Descriptor() ([]byte, []int)

Deprecated: Use RenewCredentialResponse.ProtoReflect.Descriptor instead.

func (*RenewCredentialResponse) GetCaBundlePem

func (x *RenewCredentialResponse) GetCaBundlePem() []byte

func (*RenewCredentialResponse) GetCertificatePem

func (x *RenewCredentialResponse) GetCertificatePem() []byte

func (*RenewCredentialResponse) ProtoMessage

func (*RenewCredentialResponse) ProtoMessage()

func (*RenewCredentialResponse) ProtoReflect

func (x *RenewCredentialResponse) ProtoReflect() protoreflect.Message

func (*RenewCredentialResponse) Reset

func (x *RenewCredentialResponse) Reset()

func (*RenewCredentialResponse) String

func (x *RenewCredentialResponse) String() string

type ReportFlowsRequest

type ReportFlowsRequest struct {
	WindowStart *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=window_start,json=windowStart,proto3" json:"window_start,omitempty"`
	WindowEnd   *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=window_end,json=windowEnd,proto3" json:"window_end,omitempty"`
	Records     []*FlowRecord          `protobuf:"bytes,3,rep,name=records,proto3" json:"records,omitempty"`
	// Intervals in which the agent knows its evidence is incomplete, shipped
	// with the next window rather than on a schedule of their own. They are
	// not bounded by the window: a gap is wherever the loss happened. A
	// window may carry gaps and no records. The reporting workload is the
	// connection credential's, as for the records.
	Gaps []*EvidenceGap `protobuf:"bytes,4,rep,name=gaps,proto3" json:"gaps,omitempty"`
	// The agent's clock when it sent this request, stamped on every request
	// immediately before it is sent. The control plane compares it with the
	// instant it received the request to detect an agent whose clock has
	// drifted, which would otherwise misdate every window it reports. The
	// window bounds cannot serve: a window held in the agent's buffer while
	// the control plane was unreachable is delivered late by design, and
	// late delivery is not skew. Unset from an agent that predates the
	// field.
	SentAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=sent_at,json=sentAt,proto3" json:"sent_at,omitempty"`
	// contains filtered or unexported fields
}

One aggregation window of flow records from one agent.

func (*ReportFlowsRequest) Descriptor deprecated

func (*ReportFlowsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ReportFlowsRequest.ProtoReflect.Descriptor instead.

func (*ReportFlowsRequest) GetGaps

func (x *ReportFlowsRequest) GetGaps() []*EvidenceGap

func (*ReportFlowsRequest) GetRecords

func (x *ReportFlowsRequest) GetRecords() []*FlowRecord

func (*ReportFlowsRequest) GetSentAt added in v0.2.0

func (x *ReportFlowsRequest) GetSentAt() *timestamppb.Timestamp

func (*ReportFlowsRequest) GetWindowEnd

func (x *ReportFlowsRequest) GetWindowEnd() *timestamppb.Timestamp

func (*ReportFlowsRequest) GetWindowStart

func (x *ReportFlowsRequest) GetWindowStart() *timestamppb.Timestamp

func (*ReportFlowsRequest) ProtoMessage

func (*ReportFlowsRequest) ProtoMessage()

func (*ReportFlowsRequest) ProtoReflect

func (x *ReportFlowsRequest) ProtoReflect() protoreflect.Message

func (*ReportFlowsRequest) Reset

func (x *ReportFlowsRequest) Reset()

func (*ReportFlowsRequest) String

func (x *ReportFlowsRequest) String() string

type ReportFlowsResponse

type ReportFlowsResponse struct {

	// Total records accepted across the stream.
	AcceptedRecords uint64 `protobuf:"varint,1,opt,name=accepted_records,json=acceptedRecords,proto3" json:"accepted_records,omitempty"`
	// contains filtered or unexported fields
}

func (*ReportFlowsResponse) Descriptor deprecated

func (*ReportFlowsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ReportFlowsResponse.ProtoReflect.Descriptor instead.

func (*ReportFlowsResponse) GetAcceptedRecords

func (x *ReportFlowsResponse) GetAcceptedRecords() uint64

func (*ReportFlowsResponse) ProtoMessage

func (*ReportFlowsResponse) ProtoMessage()

func (*ReportFlowsResponse) ProtoReflect

func (x *ReportFlowsResponse) ProtoReflect() protoreflect.Message

func (*ReportFlowsResponse) Reset

func (x *ReportFlowsResponse) Reset()

func (*ReportFlowsResponse) String

func (x *ReportFlowsResponse) String() string

type ResolvedRule

type ResolvedRule struct {

	// The resolved rule's identity: the authored rule id, a slash, and the
	// protocol name in lower case, e.g. "<authored-rule-id>/tcp". An authored
	// rule that permits several protocols renders to one resolved rule per
	// protocol, and deltas address each by this id, so the protocol is part
	// of the identity. Provenance is the part before the slash (ADR-0018).
	RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
	// Concrete peer addresses: managed-workload addresses as host routes
	// (/32 or /128) plus any literal CIDRs from the authored rule.
	PeerCidrs []string     `protobuf:"bytes,2,rep,name=peer_cidrs,json=peerCidrs,proto3" json:"peer_cidrs,omitempty"`
	Protocol  Protocol     `protobuf:"varint,3,opt,name=protocol,proto3,enum=innerwall.v1.Protocol" json:"protocol,omitempty"`
	Ports     []*PortRange `protobuf:"bytes,4,rep,name=ports,proto3" json:"ports,omitempty"`
	// contains filtered or unexported fields
}

A single resolved inbound permission: concrete peers, one protocol, ports. Its id carries the authored rule id for provenance — flow records and diagnostics can point back to the intent that produced a given permission.

func (*ResolvedRule) Descriptor deprecated

func (*ResolvedRule) Descriptor() ([]byte, []int)

Deprecated: Use ResolvedRule.ProtoReflect.Descriptor instead.

func (*ResolvedRule) GetPeerCidrs

func (x *ResolvedRule) GetPeerCidrs() []string

func (*ResolvedRule) GetPorts

func (x *ResolvedRule) GetPorts() []*PortRange

func (*ResolvedRule) GetProtocol

func (x *ResolvedRule) GetProtocol() Protocol

func (*ResolvedRule) GetRuleId

func (x *ResolvedRule) GetRuleId() string

func (*ResolvedRule) ProtoMessage

func (*ResolvedRule) ProtoMessage()

func (*ResolvedRule) ProtoReflect

func (x *ResolvedRule) ProtoReflect() protoreflect.Message

func (*ResolvedRule) Reset

func (x *ResolvedRule) Reset()

func (*ResolvedRule) String

func (x *ResolvedRule) String() string

type Rule

type Rule struct {
	Id        string          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Direction Direction       `protobuf:"varint,2,opt,name=direction,proto3,enum=innerwall.v1.Direction" json:"direction,omitempty"`
	Peers     []*PeerSelector `protobuf:"bytes,3,rep,name=peers,proto3" json:"peers,omitempty"`
	// Services permitted, written inline.
	Services    []*ServiceEntry `protobuf:"bytes,4,rep,name=services,proto3" json:"services,omitempty"`
	Enabled     bool            `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Description string          `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// Services permitted by reference to ServiceDefinitions, by id. The
	// control plane expands a reference when it renders, so editing a
	// definition re-renders every rule that names it; a reference to a
	// definition that does not exist is rejected at admission. A rule may
	// combine references with inline entries (ADR-0018).
	ServiceIds []string `protobuf:"bytes,7,rep,name=service_ids,json=serviceIds,proto3" json:"service_ids,omitempty"`
	// contains filtered or unexported fields
}

A single authored rule. The ruleset's scope is the local end; `peers` is the remote end; `direction` orients the two. For DIRECTION_INBOUND, peers may initiate connections to scoped workloads on the listed services. (For DIRECTION_OUTBOUND — rejected in v1 — scoped workloads would initiate to peers.) This orientation means the schema needs no separate source/destination fields per direction.

func (*Rule) Descriptor deprecated

func (*Rule) Descriptor() ([]byte, []int)

Deprecated: Use Rule.ProtoReflect.Descriptor instead.

func (*Rule) GetDescription

func (x *Rule) GetDescription() string

func (*Rule) GetDirection

func (x *Rule) GetDirection() Direction

func (*Rule) GetEnabled

func (x *Rule) GetEnabled() bool

func (*Rule) GetId

func (x *Rule) GetId() string

func (*Rule) GetPeers

func (x *Rule) GetPeers() []*PeerSelector

func (*Rule) GetServiceIds

func (x *Rule) GetServiceIds() []string

func (*Rule) GetServices

func (x *Rule) GetServices() []*ServiceEntry

func (*Rule) ProtoMessage

func (*Rule) ProtoMessage()

func (*Rule) ProtoReflect

func (x *Rule) ProtoReflect() protoreflect.Message

func (*Rule) Reset

func (x *Rule) Reset()

func (*Rule) String

func (x *Rule) String() string

type Ruleset

type Ruleset struct {
	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// The workloads this ruleset applies to (the local end of its rules).
	Scope       *LabelSelector `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"`
	Rules       []*Rule        `protobuf:"bytes,4,rep,name=rules,proto3" json:"rules,omitempty"`
	Enabled     bool           `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Description string         `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*Ruleset) Descriptor deprecated

func (*Ruleset) Descriptor() ([]byte, []int)

Deprecated: Use Ruleset.ProtoReflect.Descriptor instead.

func (*Ruleset) GetDescription

func (x *Ruleset) GetDescription() string

func (*Ruleset) GetEnabled

func (x *Ruleset) GetEnabled() bool

func (*Ruleset) GetId

func (x *Ruleset) GetId() string

func (*Ruleset) GetName

func (x *Ruleset) GetName() string

func (*Ruleset) GetRules

func (x *Ruleset) GetRules() []*Rule

func (*Ruleset) GetScope

func (x *Ruleset) GetScope() *LabelSelector

func (*Ruleset) ProtoMessage

func (*Ruleset) ProtoMessage()

func (*Ruleset) ProtoReflect

func (x *Ruleset) ProtoReflect() protoreflect.Message

func (*Ruleset) Reset

func (x *Ruleset) Reset()

func (*Ruleset) String

func (x *Ruleset) String() string

type ServiceDefinition

type ServiceDefinition struct {
	Id      string          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name    string          `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Entries []*ServiceEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"`
	// contains filtered or unexported fields
}

A named, reusable set of protocol/port entries.

func (*ServiceDefinition) Descriptor deprecated

func (*ServiceDefinition) Descriptor() ([]byte, []int)

Deprecated: Use ServiceDefinition.ProtoReflect.Descriptor instead.

func (*ServiceDefinition) GetEntries

func (x *ServiceDefinition) GetEntries() []*ServiceEntry

func (*ServiceDefinition) GetId

func (x *ServiceDefinition) GetId() string

func (*ServiceDefinition) GetName

func (x *ServiceDefinition) GetName() string

func (*ServiceDefinition) ProtoMessage

func (*ServiceDefinition) ProtoMessage()

func (*ServiceDefinition) ProtoReflect

func (x *ServiceDefinition) ProtoReflect() protoreflect.Message

func (*ServiceDefinition) Reset

func (x *ServiceDefinition) Reset()

func (*ServiceDefinition) String

func (x *ServiceDefinition) String() string

type ServiceEntry

type ServiceEntry struct {
	Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=innerwall.v1.Protocol" json:"protocol,omitempty"`
	// Empty means all ports for the protocol (e.g. ICMP, which has none).
	Ports []*PortRange `protobuf:"bytes,2,rep,name=ports,proto3" json:"ports,omitempty"`
	// contains filtered or unexported fields
}

func (*ServiceEntry) Descriptor deprecated

func (*ServiceEntry) Descriptor() ([]byte, []int)

Deprecated: Use ServiceEntry.ProtoReflect.Descriptor instead.

func (*ServiceEntry) GetPorts

func (x *ServiceEntry) GetPorts() []*PortRange

func (*ServiceEntry) GetProtocol

func (x *ServiceEntry) GetProtocol() Protocol

func (*ServiceEntry) ProtoMessage

func (*ServiceEntry) ProtoMessage()

func (*ServiceEntry) ProtoReflect

func (x *ServiceEntry) ProtoReflect() protoreflect.Message

func (*ServiceEntry) Reset

func (x *ServiceEntry) Reset()

func (*ServiceEntry) String

func (x *ServiceEntry) String() string

type SyncConfig

type SyncConfig struct {
	HeartbeatIntervalSeconds       uint32 `` /* 136-byte string literal not displayed */
	InventoryReportIntervalSeconds uint32 `` /* 156-byte string literal not displayed */
	FlowAggregationWindowSeconds   uint32 `` /* 150-byte string literal not displayed */
	FlowBatchMaxRecords            uint32 `protobuf:"varint,4,opt,name=flow_batch_max_records,json=flowBatchMaxRecords,proto3" json:"flow_batch_max_records,omitempty"`
	// contains filtered or unexported fields
}

Server-assigned operating parameters. Centralizing these means fleet-wide tuning without agent redeployment.

func (*SyncConfig) Descriptor deprecated

func (*SyncConfig) Descriptor() ([]byte, []int)

Deprecated: Use SyncConfig.ProtoReflect.Descriptor instead.

func (*SyncConfig) GetFlowAggregationWindowSeconds

func (x *SyncConfig) GetFlowAggregationWindowSeconds() uint32

func (*SyncConfig) GetFlowBatchMaxRecords

func (x *SyncConfig) GetFlowBatchMaxRecords() uint32

func (*SyncConfig) GetHeartbeatIntervalSeconds

func (x *SyncConfig) GetHeartbeatIntervalSeconds() uint32

func (*SyncConfig) GetInventoryReportIntervalSeconds

func (x *SyncConfig) GetInventoryReportIntervalSeconds() uint32

func (*SyncConfig) ProtoMessage

func (*SyncConfig) ProtoMessage()

func (*SyncConfig) ProtoReflect

func (x *SyncConfig) ProtoReflect() protoreflect.Message

func (*SyncConfig) Reset

func (x *SyncConfig) Reset()

func (*SyncConfig) String

func (x *SyncConfig) String() string

type SyncRequest

type SyncRequest struct {

	// Types that are valid to be assigned to Msg:
	//
	//	*SyncRequest_Hello
	//	*SyncRequest_PolicyAck
	//	*SyncRequest_Inventory
	//	*SyncRequest_Heartbeat
	Msg isSyncRequest_Msg `protobuf_oneof:"msg"`
	// contains filtered or unexported fields
}

func (*SyncRequest) Descriptor deprecated

func (*SyncRequest) Descriptor() ([]byte, []int)

Deprecated: Use SyncRequest.ProtoReflect.Descriptor instead.

func (*SyncRequest) GetHeartbeat

func (x *SyncRequest) GetHeartbeat() *Heartbeat

func (*SyncRequest) GetHello

func (x *SyncRequest) GetHello() *Hello

func (*SyncRequest) GetInventory

func (x *SyncRequest) GetInventory() *InventoryReport

func (*SyncRequest) GetMsg

func (x *SyncRequest) GetMsg() isSyncRequest_Msg

func (*SyncRequest) GetPolicyAck

func (x *SyncRequest) GetPolicyAck() *PolicyAck

func (*SyncRequest) ProtoMessage

func (*SyncRequest) ProtoMessage()

func (*SyncRequest) ProtoReflect

func (x *SyncRequest) ProtoReflect() protoreflect.Message

func (*SyncRequest) Reset

func (x *SyncRequest) Reset()

func (*SyncRequest) String

func (x *SyncRequest) String() string

type SyncRequest_Heartbeat

type SyncRequest_Heartbeat struct {
	Heartbeat *Heartbeat `protobuf:"bytes,4,opt,name=heartbeat,proto3,oneof"`
}

type SyncRequest_Hello

type SyncRequest_Hello struct {
	Hello *Hello `protobuf:"bytes,1,opt,name=hello,proto3,oneof"`
}

type SyncRequest_Inventory

type SyncRequest_Inventory struct {
	Inventory *InventoryReport `protobuf:"bytes,3,opt,name=inventory,proto3,oneof"`
}

type SyncRequest_PolicyAck

type SyncRequest_PolicyAck struct {
	PolicyAck *PolicyAck `protobuf:"bytes,2,opt,name=policy_ack,json=policyAck,proto3,oneof"`
}

type SyncResponse

type SyncResponse struct {

	// Types that are valid to be assigned to Msg:
	//
	//	*SyncResponse_HelloAck
	//	*SyncResponse_PolicyUpdate
	//	*SyncResponse_Directive
	Msg isSyncResponse_Msg `protobuf_oneof:"msg"`
	// contains filtered or unexported fields
}

func (*SyncResponse) Descriptor deprecated

func (*SyncResponse) Descriptor() ([]byte, []int)

Deprecated: Use SyncResponse.ProtoReflect.Descriptor instead.

func (*SyncResponse) GetDirective

func (x *SyncResponse) GetDirective() *Directive

func (*SyncResponse) GetHelloAck

func (x *SyncResponse) GetHelloAck() *HelloAck

func (*SyncResponse) GetMsg

func (x *SyncResponse) GetMsg() isSyncResponse_Msg

func (*SyncResponse) GetPolicyUpdate

func (x *SyncResponse) GetPolicyUpdate() *PolicyUpdate

func (*SyncResponse) ProtoMessage

func (*SyncResponse) ProtoMessage()

func (*SyncResponse) ProtoReflect

func (x *SyncResponse) ProtoReflect() protoreflect.Message

func (*SyncResponse) Reset

func (x *SyncResponse) Reset()

func (*SyncResponse) String

func (x *SyncResponse) String() string

type SyncResponse_Directive

type SyncResponse_Directive struct {
	Directive *Directive `protobuf:"bytes,3,opt,name=directive,proto3,oneof"`
}

type SyncResponse_HelloAck

type SyncResponse_HelloAck struct {
	HelloAck *HelloAck `protobuf:"bytes,1,opt,name=hello_ack,json=helloAck,proto3,oneof"`
}

type SyncResponse_PolicyUpdate

type SyncResponse_PolicyUpdate struct {
	PolicyUpdate *PolicyUpdate `protobuf:"bytes,2,opt,name=policy_update,json=policyUpdate,proto3,oneof"`
}

type SyncState

type SyncState int32

Control-plane view of an agent's convergence with desired state.

const (
	SyncState_SYNC_STATE_UNSPECIFIED SyncState = 0
	// Applied policy version matches the latest rendered version.
	SyncState_SYNC_STATE_SYNCED SyncState = 1
	// A newer rendered version exists that the agent has not yet acknowledged.
	SyncState_SYNC_STATE_PENDING SyncState = 2
	// The agent reported a failed apply and remains on its last good version.
	SyncState_SYNC_STATE_DEGRADED SyncState = 3
	// No live sync stream for this workload.
	SyncState_SYNC_STATE_OFFLINE SyncState = 4
)

func (SyncState) Descriptor

func (SyncState) Descriptor() protoreflect.EnumDescriptor

func (SyncState) Enum

func (x SyncState) Enum() *SyncState

func (SyncState) EnumDescriptor deprecated

func (SyncState) EnumDescriptor() ([]byte, []int)

Deprecated: Use SyncState.Descriptor instead.

func (SyncState) Number

func (x SyncState) Number() protoreflect.EnumNumber

func (SyncState) String

func (x SyncState) String() string

func (SyncState) Type

type UnimplementedAgentServiceServer

type UnimplementedAgentServiceServer struct{}

UnimplementedAgentServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedAgentServiceServer) RenewCredential

func (UnimplementedAgentServiceServer) Sync

type UnimplementedEnrollmentServiceServer

type UnimplementedEnrollmentServiceServer struct{}

UnimplementedEnrollmentServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedEnrollmentServiceServer) Enroll

type UnsafeAgentServiceServer

type UnsafeAgentServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeAgentServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AgentServiceServer will result in compilation errors.

type UnsafeEnrollmentServiceServer

type UnsafeEnrollmentServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeEnrollmentServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to EnrollmentServiceServer will result in compilation errors.

type Workload

type Workload struct {

	// Stable identity assigned at enrollment and bound into the workload's
	// credential (ADR-0004). Never derived from host facts.
	WorkloadId string                 `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"`
	Labels     []*Label               `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
	Facts      *HostFacts             `protobuf:"bytes,3,opt,name=facts,proto3" json:"facts,omitempty"`
	Agent      *AgentInfo             `protobuf:"bytes,4,opt,name=agent,proto3" json:"agent,omitempty"`
	Mode       EnforcementMode        `protobuf:"varint,5,opt,name=mode,proto3,enum=innerwall.v1.EnforcementMode" json:"mode,omitempty"`
	SyncState  SyncState              `protobuf:"varint,6,opt,name=sync_state,json=syncState,proto3,enum=innerwall.v1.SyncState" json:"sync_state,omitempty"`
	EnrolledAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=enrolled_at,json=enrolledAt,proto3" json:"enrolled_at,omitempty"`
	LastSeen   *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"`
	// contains filtered or unexported fields
}

A workload as known to the control plane. This is the control plane's authoritative record, composed from enrollment, inventory reports, and sync status — not a message the agent sends.

func (*Workload) Descriptor deprecated

func (*Workload) Descriptor() ([]byte, []int)

Deprecated: Use Workload.ProtoReflect.Descriptor instead.

func (*Workload) GetAgent

func (x *Workload) GetAgent() *AgentInfo

func (*Workload) GetEnrolledAt

func (x *Workload) GetEnrolledAt() *timestamppb.Timestamp

func (*Workload) GetFacts

func (x *Workload) GetFacts() *HostFacts

func (*Workload) GetLabels

func (x *Workload) GetLabels() []*Label

func (*Workload) GetLastSeen

func (x *Workload) GetLastSeen() *timestamppb.Timestamp

func (*Workload) GetMode

func (x *Workload) GetMode() EnforcementMode

func (*Workload) GetSyncState

func (x *Workload) GetSyncState() SyncState

func (*Workload) GetWorkloadId

func (x *Workload) GetWorkloadId() string

func (*Workload) ProtoMessage

func (*Workload) ProtoMessage()

func (*Workload) ProtoReflect

func (x *Workload) ProtoReflect() protoreflect.Message

func (*Workload) Reset

func (x *Workload) Reset()

func (*Workload) String

func (x *Workload) String() string

type WorkloadPolicy

type WorkloadPolicy struct {
	Version      uint64          `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	Mode         EnforcementMode `protobuf:"varint,2,opt,name=mode,proto3,enum=innerwall.v1.EnforcementMode" json:"mode,omitempty"`
	InboundRules []*ResolvedRule `protobuf:"bytes,3,rep,name=inbound_rules,json=inboundRules,proto3" json:"inbound_rules,omitempty"`
	// contains filtered or unexported fields
}

The complete rendered policy for one workload at one version. Versions are per-workload, monotonic, and opaque to everything except ordering. Small by construction: a workload's rendered policy is its own inbound rules only.

func (*WorkloadPolicy) Descriptor deprecated

func (*WorkloadPolicy) Descriptor() ([]byte, []int)

Deprecated: Use WorkloadPolicy.ProtoReflect.Descriptor instead.

func (*WorkloadPolicy) GetInboundRules

func (x *WorkloadPolicy) GetInboundRules() []*ResolvedRule

func (*WorkloadPolicy) GetMode

func (x *WorkloadPolicy) GetMode() EnforcementMode

func (*WorkloadPolicy) GetVersion

func (x *WorkloadPolicy) GetVersion() uint64

func (*WorkloadPolicy) ProtoMessage

func (*WorkloadPolicy) ProtoMessage()

func (*WorkloadPolicy) ProtoReflect

func (x *WorkloadPolicy) ProtoReflect() protoreflect.Message

func (*WorkloadPolicy) Reset

func (x *WorkloadPolicy) Reset()

func (*WorkloadPolicy) String

func (x *WorkloadPolicy) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL