Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the transport v1alpha1 API group. +kubebuilder:object:generate=true +groupName=transport.bubustack.io
Index ¶
- Variables
- type AudioBinding
- type AudioCodec
- type BinaryBinding
- type BufferDropPolicy
- type DeliverySemantics
- type FlowControlMode
- type MediaDirection
- type OrderingMode
- type ReplayMode
- type Transport
- type TransportBackpressureSettings
- type TransportBinding
- type TransportBindingList
- type TransportBindingSpec
- type TransportBindingStatus
- type TransportBufferSettings
- type TransportDeliverySettings
- type TransportFanInMode
- type TransportFanInSettings
- type TransportFanOutMode
- type TransportFlowAckSettings
- type TransportFlowControlSettings
- type TransportFlowCredits
- type TransportFlowThreshold
- type TransportLane
- type TransportLaneDirection
- type TransportLaneKind
- type TransportLifecycleSettings
- type TransportList
- type TransportMetricsSettings
- type TransportObservabilitySettings
- type TransportPartitionMode
- type TransportPartitioningSettings
- type TransportRecordingMode
- type TransportRecordingSettings
- type TransportReplaySettings
- type TransportRoutingMode
- type TransportRoutingRule
- type TransportRoutingRuleAction
- type TransportRoutingRuleTarget
- type TransportRoutingSettings
- type TransportSpec
- type TransportStatus
- type TransportStreamingSettings
- type TransportTracingSettings
- type TransportUpgradeStrategy
- type TransportWatermarkSettings
- type VideoBinding
- type VideoCodec
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "transport.bubustack.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. //nolint:staticcheck // Kubebuilder API package registration still uses scheme.Builder. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AudioBinding ¶
type AudioBinding struct {
// direction indicates whether the owning engram publishes, subscribes, or both.
// +kubebuilder:validation:Required
Direction MediaDirection `json:"direction"`
// codecs enumerates the preferred codecs ordered by priority.
// If empty, defaults to PCM16.
// +optional
Codecs []AudioCodec `json:"codecs,omitempty"`
}
AudioBinding declares how audio should flow across the connector.
func (*AudioBinding) DeepCopy ¶
func (in *AudioBinding) DeepCopy() *AudioBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AudioBinding.
func (*AudioBinding) DeepCopyInto ¶
func (in *AudioBinding) DeepCopyInto(out *AudioBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AudioCodec ¶
type AudioCodec struct {
// name of the codec (e.g., pcm16, opus, g711-mu)
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=pcm16;pcm24;opus;g711-mu;g711-a;g722;aac;mp3;flac;raw
Name string `json:"name"`
// sampleRateHz indicates the sampling rate for this codec.
// +optional
SampleRateHz int32 `json:"sampleRateHz,omitempty"`
// channels indicates the number of channels carried by this codec.
// +optional
Channels int32 `json:"channels,omitempty"`
}
AudioCodec describes a negotiated audio codec.
func (*AudioCodec) DeepCopy ¶
func (in *AudioCodec) DeepCopy() *AudioCodec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AudioCodec.
func (*AudioCodec) DeepCopyInto ¶
func (in *AudioCodec) DeepCopyInto(out *AudioCodec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BinaryBinding ¶
type BinaryBinding struct {
// direction indicates whether the owning engram publishes, subscribes, or both.
// +kubebuilder:validation:Required
Direction MediaDirection `json:"direction"`
// mimeTypes enumerates supported MIME types (e.g., application/json, application/octet-stream).
// +optional
MimeTypes []string `json:"mimeTypes,omitempty"`
}
BinaryBinding declares how generic binary payloads should flow across the connector.
func (*BinaryBinding) DeepCopy ¶
func (in *BinaryBinding) DeepCopy() *BinaryBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BinaryBinding.
func (*BinaryBinding) DeepCopyInto ¶
func (in *BinaryBinding) DeepCopyInto(out *BinaryBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BufferDropPolicy ¶
type BufferDropPolicy string
BufferDropPolicy defines how the hub behaves when buffers overflow. +kubebuilder:validation:Enum=drop_newest;drop_oldest
const ( BufferDropNewest BufferDropPolicy = "drop_newest" BufferDropOldest BufferDropPolicy = "drop_oldest" )
type DeliverySemantics ¶
type DeliverySemantics string
DeliverySemantics defines the delivery guarantee. +kubebuilder:validation:Enum=best_effort;at_least_once
const ( DeliveryBestEffort DeliverySemantics = "best_effort" DeliveryAtLeastOnce DeliverySemantics = "at_least_once" )
type FlowControlMode ¶
type FlowControlMode string
FlowControlMode selects the flow-control strategy for a transport. +kubebuilder:validation:Enum=none;credits;window
const ( FlowControlNone FlowControlMode = "none" FlowControlCredits FlowControlMode = "credits" FlowControlWindow FlowControlMode = "window" )
type MediaDirection ¶
type MediaDirection string
MediaDirection describes whether the engram publishes, subscribes, or does both for a media stream. +kubebuilder:validation:Enum=publish;subscribe;bidirectional
const ( MediaDirectionPublish MediaDirection = "publish" MediaDirectionSubscribe MediaDirection = "subscribe" MediaDirectionBidirectional MediaDirection = "bidirectional" )
type OrderingMode ¶
type OrderingMode string
OrderingMode defines ordering guarantees for streaming delivery. +kubebuilder:validation:Enum=none;per_stream;per_partition
const ( OrderingNone OrderingMode = "none" OrderingPerStream OrderingMode = "per_stream" OrderingPerPartition OrderingMode = "per_partition" )
type ReplayMode ¶
type ReplayMode string
ReplayMode configures stream replay behavior. +kubebuilder:validation:Enum=none;memory;durable
const ( ReplayNone ReplayMode = "none" ReplayMemory ReplayMode = "memory" ReplayDurable ReplayMode = "durable" )
type Transport ¶
type Transport struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of Transport
// +required
Spec TransportSpec `json:"spec"`
// status defines the observed state of Transport
// +optional
Status TransportStatus `json:"status,omitzero"`
}
Transport defines a reusable transport configuration.
func (*Transport) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Transport.
func (*Transport) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Transport) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TransportBackpressureSettings ¶
type TransportBackpressureSettings struct {
// Buffer configures queue limits and drop policy.
// +optional
Buffer *TransportBufferSettings `json:"buffer,omitempty"`
}
TransportBackpressureSettings holds buffer configuration.
func (*TransportBackpressureSettings) DeepCopy ¶
func (in *TransportBackpressureSettings) DeepCopy() *TransportBackpressureSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBackpressureSettings.
func (*TransportBackpressureSettings) DeepCopyInto ¶
func (in *TransportBackpressureSettings) DeepCopyInto(out *TransportBackpressureSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportBinding ¶
type TransportBinding struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitzero"`
// spec defines the desired state of TransportBinding
// +required
Spec TransportBindingSpec `json:"spec"`
// status defines the observed state of TransportBinding
// +optional
Status TransportBindingStatus `json:"status,omitzero"`
}
TransportBinding is the Schema for the transportbindings API
func (*TransportBinding) DeepCopy ¶
func (in *TransportBinding) DeepCopy() *TransportBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBinding.
func (*TransportBinding) DeepCopyInto ¶
func (in *TransportBinding) DeepCopyInto(out *TransportBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TransportBinding) DeepCopyObject ¶
func (in *TransportBinding) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TransportBindingList ¶
type TransportBindingList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []TransportBinding `json:"items"`
}
TransportBindingList contains a list of TransportBinding
func (*TransportBindingList) DeepCopy ¶
func (in *TransportBindingList) DeepCopy() *TransportBindingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBindingList.
func (*TransportBindingList) DeepCopyInto ¶
func (in *TransportBindingList) DeepCopyInto(out *TransportBindingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TransportBindingList) DeepCopyObject ¶
func (in *TransportBindingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TransportBindingSpec ¶
type TransportBindingSpec struct {
// transportRef references the Transport CR driving this binding.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
TransportRef string `json:"transportRef"`
// storyRunRef identifies the StoryRun this binding belongs to when scoped to an individual run.
// +optional
StoryRunRef *refs.StoryRunReference `json:"storyRunRef,omitempty"`
// stepName is the Story step that owns this binding.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
StepName string `json:"stepName"`
// engramName is the run-specific engram backing the step.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
EngramName string `json:"engramName"`
// driver indicates which connector driver should be used.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Driver string `json:"driver"`
// audio describes the desired audio flow for this binding.
// +optional
Audio *AudioBinding `json:"audio,omitempty"`
// video describes the desired video flow for this binding.
// +optional
Video *VideoBinding `json:"video,omitempty"`
// binary describes the desired binary flow for this binding.
// +optional
Binary *BinaryBinding `json:"binary,omitempty"`
// connectorEndpoint is the in-pod endpoint engrams should dial to reach the connector sidecar (e.g., 127.0.0.1:50051).
// +optional
ConnectorEndpoint string `json:"connectorEndpoint,omitempty"`
// settings carries provider-specific configuration serialized as JSON.
// +optional
RawSettings *runtime.RawExtension `json:"rawSettings,omitempty"`
}
TransportBindingSpec defines the desired state of TransportBinding.
func (*TransportBindingSpec) DeepCopy ¶
func (in *TransportBindingSpec) DeepCopy() *TransportBindingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBindingSpec.
func (*TransportBindingSpec) DeepCopyInto ¶
func (in *TransportBindingSpec) DeepCopyInto(out *TransportBindingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportBindingStatus ¶
type TransportBindingStatus struct {
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// negotiatedAudio captures the codec the connector selected for audio.
// +optional
NegotiatedAudio *AudioCodec `json:"negotiatedAudio,omitempty"`
// negotiatedVideo captures the codec the connector selected for video.
// +optional
NegotiatedVideo *VideoCodec `json:"negotiatedVideo,omitempty"`
// negotiatedBinary captures the MIME type the connector selected for binary payloads.
// +optional
NegotiatedBinary string `json:"negotiatedBinary,omitempty"`
// endpoint is the connector endpoint (host:port or unix socket) for this binding.
// +optional
Endpoint string `json:"endpoint,omitempty"`
// downstreamHost is the resolved downstream endpoint (host:port) for the engram owning this binding.
// This is populated when the engram can accept direct P2P connections from upstream engrams.
// +optional
DownstreamHost string `json:"downstreamHost,omitempty"`
// upstreamHost is the resolved upstream endpoint (host:port) that this engram should connect to.
// This is populated when the connection can bypass the hub and use direct P2P routing.
// +optional
UpstreamHost string `json:"upstreamHost,omitempty"`
// conditions represent the current state of the TransportBinding resource.
// +listType=map
// +listMapKey=type
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
TransportBindingStatus defines the observed state of TransportBinding.
func (*TransportBindingStatus) DeepCopy ¶
func (in *TransportBindingStatus) DeepCopy() *TransportBindingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBindingStatus.
func (*TransportBindingStatus) DeepCopyInto ¶
func (in *TransportBindingStatus) DeepCopyInto(out *TransportBindingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportBufferSettings ¶
type TransportBufferSettings struct {
// MaxMessages caps the number of buffered messages.
// +optional
// +kubebuilder:validation:Minimum=0
MaxMessages *int32 `json:"maxMessages,omitempty"`
// MaxBytes caps the total bytes buffered.
// +optional
// +kubebuilder:validation:Minimum=0
MaxBytes *int32 `json:"maxBytes,omitempty"`
// MaxAgeSeconds caps the time a message can remain buffered.
// +optional
// +kubebuilder:validation:Minimum=0
MaxAgeSeconds *int32 `json:"maxAgeSeconds,omitempty"`
// DropPolicy selects which messages to drop when the buffer is full.
// +optional
DropPolicy BufferDropPolicy `json:"dropPolicy,omitempty"`
}
TransportBufferSettings defines buffer limits.
func (*TransportBufferSettings) DeepCopy ¶
func (in *TransportBufferSettings) DeepCopy() *TransportBufferSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBufferSettings.
func (*TransportBufferSettings) DeepCopyInto ¶
func (in *TransportBufferSettings) DeepCopyInto(out *TransportBufferSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportDeliverySettings ¶
type TransportDeliverySettings struct {
// Ordering controls ordering guarantees.
// +optional
Ordering OrderingMode `json:"ordering,omitempty"`
// Semantics controls delivery semantics.
// +optional
Semantics DeliverySemantics `json:"semantics,omitempty"`
// Replay configures replay/retention.
// +optional
Replay *TransportReplaySettings `json:"replay,omitempty"`
}
TransportDeliverySettings configures ordering, semantics, and replay.
func (*TransportDeliverySettings) DeepCopy ¶
func (in *TransportDeliverySettings) DeepCopy() *TransportDeliverySettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportDeliverySettings.
func (*TransportDeliverySettings) DeepCopyInto ¶
func (in *TransportDeliverySettings) DeepCopyInto(out *TransportDeliverySettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportFanInMode ¶
type TransportFanInMode string
TransportFanInMode selects how fan-in joins are resolved. +kubebuilder:validation:Enum=all;any;quorum
const ( TransportFanInAll TransportFanInMode = "all" TransportFanInAny TransportFanInMode = "any" TransportFanInQuorum TransportFanInMode = "quorum" )
type TransportFanInSettings ¶
type TransportFanInSettings struct {
// Mode controls whether all, any, or a quorum of upstreams are required.
// +optional
Mode TransportFanInMode `json:"mode,omitempty"`
// Quorum sets the minimum number of upstreams required when Mode=quorum.
// +optional
// +kubebuilder:validation:Minimum=1
Quorum *int32 `json:"quorum,omitempty"`
// TimeoutSeconds caps how long fan-in will wait before giving up.
// +optional
// +kubebuilder:validation:Minimum=0
TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
// MaxEntries caps the number of concurrent fan-in joins retained in memory.
// +optional
// +kubebuilder:validation:Minimum=1
MaxEntries *int32 `json:"maxEntries,omitempty"`
}
TransportFanInSettings configures join behavior when multiple upstreams feed a step.
func (*TransportFanInSettings) DeepCopy ¶
func (in *TransportFanInSettings) DeepCopy() *TransportFanInSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFanInSettings.
func (*TransportFanInSettings) DeepCopyInto ¶
func (in *TransportFanInSettings) DeepCopyInto(out *TransportFanInSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportFanOutMode ¶
type TransportFanOutMode string
TransportFanOutMode controls how multiple downstreams are dispatched. +kubebuilder:validation:Enum=sequential;parallel
const ( TransportFanOutSequential TransportFanOutMode = "sequential" TransportFanOutParallel TransportFanOutMode = "parallel" )
type TransportFlowAckSettings ¶
type TransportFlowAckSettings struct {
// Messages is the ack interval in messages.
// +optional
// +kubebuilder:validation:Minimum=0
Messages *int32 `json:"messages,omitempty"`
// Bytes is the ack interval in bytes.
// +optional
// +kubebuilder:validation:Minimum=0
Bytes *int32 `json:"bytes,omitempty"`
// MaxDelay caps the time between ack/credit emissions (duration string, e.g., "250ms").
// +optional
MaxDelay *string `json:"maxDelay,omitempty"`
}
TransportFlowAckSettings defines ack pacing.
func (*TransportFlowAckSettings) DeepCopy ¶
func (in *TransportFlowAckSettings) DeepCopy() *TransportFlowAckSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFlowAckSettings.
func (*TransportFlowAckSettings) DeepCopyInto ¶
func (in *TransportFlowAckSettings) DeepCopyInto(out *TransportFlowAckSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportFlowControlSettings ¶
type TransportFlowControlSettings struct {
// Mode selects the flow-control strategy.
// +optional
Mode FlowControlMode `json:"mode,omitempty"`
// InitialCredits sets the initial credit window for credits/window mode.
// +optional
InitialCredits *TransportFlowCredits `json:"initialCredits,omitempty"`
// AckEvery controls how frequently acks/credits are emitted.
// +optional
AckEvery *TransportFlowAckSettings `json:"ackEvery,omitempty"`
// PauseThreshold sets the buffer utilization (0-1) that pauses upstream.
// +optional
PauseThreshold *TransportFlowThreshold `json:"pauseThreshold,omitempty"`
// ResumeThreshold sets the buffer utilization (0-1) that resumes upstream.
// +optional
ResumeThreshold *TransportFlowThreshold `json:"resumeThreshold,omitempty"`
}
TransportFlowControlSettings configures flow control and ack pacing.
func (*TransportFlowControlSettings) DeepCopy ¶
func (in *TransportFlowControlSettings) DeepCopy() *TransportFlowControlSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFlowControlSettings.
func (*TransportFlowControlSettings) DeepCopyInto ¶
func (in *TransportFlowControlSettings) DeepCopyInto(out *TransportFlowControlSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportFlowCredits ¶
type TransportFlowCredits struct {
// Messages is the credit window in messages.
// +optional
// +kubebuilder:validation:Minimum=0
Messages *int32 `json:"messages,omitempty"`
// Bytes is the credit window in bytes.
// +optional
// +kubebuilder:validation:Minimum=0
Bytes *int32 `json:"bytes,omitempty"`
}
TransportFlowCredits describes message/byte credits.
func (*TransportFlowCredits) DeepCopy ¶
func (in *TransportFlowCredits) DeepCopy() *TransportFlowCredits
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFlowCredits.
func (*TransportFlowCredits) DeepCopyInto ¶
func (in *TransportFlowCredits) DeepCopyInto(out *TransportFlowCredits)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportFlowThreshold ¶
type TransportFlowThreshold struct {
// BufferPct defines the buffer utilization threshold as a percent (0-100).
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
BufferPct *int32 `json:"bufferPct,omitempty"`
}
TransportFlowThreshold defines a buffer utilization threshold.
func (*TransportFlowThreshold) DeepCopy ¶
func (in *TransportFlowThreshold) DeepCopy() *TransportFlowThreshold
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFlowThreshold.
func (*TransportFlowThreshold) DeepCopyInto ¶
func (in *TransportFlowThreshold) DeepCopyInto(out *TransportFlowThreshold)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportLane ¶
type TransportLane struct {
// Name identifies the lane (e.g., "audio", "telemetry").
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Name string `json:"name"`
// Kind declares the lane media/payload type.
// +kubebuilder:validation:Required
Kind TransportLaneKind `json:"kind"`
// Direction declares whether the lane is publish/subscribe/bidirectional.
// +optional
Direction TransportLaneDirection `json:"direction,omitempty"`
// Description provides optional human-readable context.
// +optional
Description string `json:"description,omitempty"`
// MaxMessages caps buffered messages for this lane (applies per downstream).
// +optional
// +kubebuilder:validation:Minimum=0
MaxMessages *int32 `json:"maxMessages,omitempty"`
// MaxBytes caps buffered bytes for this lane (applies per downstream).
// +optional
// +kubebuilder:validation:Minimum=0
MaxBytes *int32 `json:"maxBytes,omitempty"`
}
TransportLane declares a named lane and optional per-lane caps.
func (*TransportLane) DeepCopy ¶
func (in *TransportLane) DeepCopy() *TransportLane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportLane.
func (*TransportLane) DeepCopyInto ¶
func (in *TransportLane) DeepCopyInto(out *TransportLane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportLaneDirection ¶
type TransportLaneDirection string
TransportLaneDirection declares the lane direction. +kubebuilder:validation:Enum=publish;subscribe;bidirectional
const ( TransportLanePublish TransportLaneDirection = "publish" TransportLaneSubscribe TransportLaneDirection = "subscribe" TransportLaneBidirectional TransportLaneDirection = "bidirectional" )
type TransportLaneKind ¶
type TransportLaneKind string
TransportLaneKind declares the media or payload lane. +kubebuilder:validation:Enum=audio;video;binary;payload;control
const ( TransportLaneAudio TransportLaneKind = "audio" TransportLaneVideo TransportLaneKind = "video" TransportLaneBinary TransportLaneKind = "binary" TransportLanePayload TransportLaneKind = "payload" TransportLaneControl TransportLaneKind = "control" )
type TransportLifecycleSettings ¶
type TransportLifecycleSettings struct {
// Strategy controls upgrade behavior for streaming workloads.
// +optional
Strategy TransportUpgradeStrategy `json:"strategy,omitempty"`
// DrainTimeoutSeconds caps how long to drain in-flight messages before cutover.
// +optional
// +kubebuilder:validation:Minimum=0
DrainTimeoutSeconds *int32 `json:"drainTimeoutSeconds,omitempty"`
// MaxInFlight caps the number of in-flight messages allowed during upgrades.
// +optional
// +kubebuilder:validation:Minimum=0
MaxInFlight *int32 `json:"maxInFlight,omitempty"`
}
TransportLifecycleSettings configures drain/cutover behavior for streaming steps.
func (*TransportLifecycleSettings) DeepCopy ¶
func (in *TransportLifecycleSettings) DeepCopy() *TransportLifecycleSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportLifecycleSettings.
func (*TransportLifecycleSettings) DeepCopyInto ¶
func (in *TransportLifecycleSettings) DeepCopyInto(out *TransportLifecycleSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportList ¶
type TransportList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitzero"`
Items []Transport `json:"items"`
}
TransportList lists transports.
func (*TransportList) DeepCopy ¶
func (in *TransportList) DeepCopy() *TransportList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportList.
func (*TransportList) DeepCopyInto ¶
func (in *TransportList) DeepCopyInto(out *TransportList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TransportList) DeepCopyObject ¶
func (in *TransportList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TransportMetricsSettings ¶
type TransportMetricsSettings struct {
// Enabled toggles metrics emission (default true).
// +optional
Enabled *bool `json:"enabled,omitempty"`
}
TransportMetricsSettings toggles metric emission.
func (*TransportMetricsSettings) DeepCopy ¶
func (in *TransportMetricsSettings) DeepCopy() *TransportMetricsSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportMetricsSettings.
func (*TransportMetricsSettings) DeepCopyInto ¶
func (in *TransportMetricsSettings) DeepCopyInto(out *TransportMetricsSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportObservabilitySettings ¶
type TransportObservabilitySettings struct {
// Metrics controls per-lane and hub-level metrics emission.
// +optional
Metrics *TransportMetricsSettings `json:"metrics,omitempty"`
// Tracing controls distributed tracing hooks.
// +optional
Tracing *TransportTracingSettings `json:"tracing,omitempty"`
// Watermark controls event-time watermark/lag tracking.
// +optional
Watermark *TransportWatermarkSettings `json:"watermark,omitempty"`
}
TransportObservabilitySettings configures metrics, tracing, and watermarks.
func (*TransportObservabilitySettings) DeepCopy ¶
func (in *TransportObservabilitySettings) DeepCopy() *TransportObservabilitySettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportObservabilitySettings.
func (*TransportObservabilitySettings) DeepCopyInto ¶
func (in *TransportObservabilitySettings) DeepCopyInto(out *TransportObservabilitySettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportPartitionMode ¶
type TransportPartitionMode string
TransportPartitionMode configures how partitions are assigned. +kubebuilder:validation:Enum=none;preserve;hash
const ( TransportPartitionNone TransportPartitionMode = "none" TransportPartitionPreserve TransportPartitionMode = "preserve" TransportPartitionHash TransportPartitionMode = "hash" )
type TransportPartitioningSettings ¶
type TransportPartitioningSettings struct {
// Mode selects how to assign partition IDs.
// +optional
Mode TransportPartitionMode `json:"mode,omitempty"`
// Key selects the value used for hash partitioning (e.g., "metadata.user_id" or "payload.session").
// +optional
Key *string `json:"key,omitempty"`
// Partitions sets the total number of partitions used for hash mode.
// +optional
// +kubebuilder:validation:Minimum=1
Partitions *int32 `json:"partitions,omitempty"`
// Sticky keeps an existing partition assignment if present.
// +optional
Sticky *bool `json:"sticky,omitempty"`
}
TransportPartitioningSettings configures partition assignment for stream envelopes.
func (*TransportPartitioningSettings) DeepCopy ¶
func (in *TransportPartitioningSettings) DeepCopy() *TransportPartitioningSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportPartitioningSettings.
func (*TransportPartitioningSettings) DeepCopyInto ¶
func (in *TransportPartitioningSettings) DeepCopyInto(out *TransportPartitioningSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportRecordingMode ¶
type TransportRecordingMode string
TransportRecordingMode controls whether payloads are recorded. +kubebuilder:validation:Enum=off;metadata;payload
const ( TransportRecordingOff TransportRecordingMode = "off" TransportRecordingMetadata TransportRecordingMode = "metadata" TransportRecordingPayload TransportRecordingMode = "payload" )
type TransportRecordingSettings ¶
type TransportRecordingSettings struct {
// Mode controls whether metadata-only or full payloads are recorded.
// +optional
Mode TransportRecordingMode `json:"mode,omitempty"`
// SampleRate controls recording sampling percentage (0..100).
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
SampleRate *int32 `json:"sampleRate,omitempty"`
// RetentionSeconds sets how long recordings should be retained.
// +optional
// +kubebuilder:validation:Minimum=0
RetentionSeconds *int32 `json:"retentionSeconds,omitempty"`
// RedactFields lists JSON field paths to redact (e.g., "payload.api_key").
// +optional
RedactFields []string `json:"redactFields,omitempty"`
}
TransportRecordingSettings configures stream recording behavior.
func (*TransportRecordingSettings) DeepCopy ¶
func (in *TransportRecordingSettings) DeepCopy() *TransportRecordingSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRecordingSettings.
func (*TransportRecordingSettings) DeepCopyInto ¶
func (in *TransportRecordingSettings) DeepCopyInto(out *TransportRecordingSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportReplaySettings ¶
type TransportReplaySettings struct {
// Mode selects replay storage mode.
// +optional
Mode ReplayMode `json:"mode,omitempty"`
// RetentionSeconds sets how long replay data is retained.
// +optional
// +kubebuilder:validation:Minimum=0
RetentionSeconds *int32 `json:"retentionSeconds,omitempty"`
// CheckpointInterval sets how frequently checkpoints are persisted (duration string, e.g., "1s").
// +optional
CheckpointInterval *string `json:"checkpointInterval,omitempty"`
}
TransportReplaySettings configures replay storage/retention.
func (*TransportReplaySettings) DeepCopy ¶
func (in *TransportReplaySettings) DeepCopy() *TransportReplaySettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportReplaySettings.
func (*TransportReplaySettings) DeepCopyInto ¶
func (in *TransportReplaySettings) DeepCopyInto(out *TransportReplaySettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportRoutingMode ¶
type TransportRoutingMode string
TransportRoutingMode selects how steps connect to each other. +kubebuilder:validation:Enum=auto;hub;p2p
const ( TransportRoutingAuto TransportRoutingMode = "auto" TransportRoutingHub TransportRoutingMode = "hub" TransportRoutingP2P TransportRoutingMode = "p2p" )
type TransportRoutingRule ¶
type TransportRoutingRule struct {
// Name is an optional identifier for observability/debugging.
// +optional
Name string `json:"name,omitempty"`
// When is a Go template expression evaluated against the streaming runtime scope.
// +optional
When *string `json:"when,omitempty"`
// Action controls whether matching targets are allowed or denied.
// +optional
Action TransportRoutingRuleAction `json:"action,omitempty"`
// Target selects which downstream steps this rule applies to.
// +optional
Target *TransportRoutingRuleTarget `json:"target,omitempty"`
}
TransportRoutingRule defines conditional routing behavior for downstream steps.
func (*TransportRoutingRule) DeepCopy ¶
func (in *TransportRoutingRule) DeepCopy() *TransportRoutingRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRoutingRule.
func (*TransportRoutingRule) DeepCopyInto ¶
func (in *TransportRoutingRule) DeepCopyInto(out *TransportRoutingRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportRoutingRuleAction ¶
type TransportRoutingRuleAction string
TransportRoutingRuleAction selects how a routing rule affects downstream selection. +kubebuilder:validation:Enum=allow;deny
const ( TransportRoutingRuleAllow TransportRoutingRuleAction = "allow" TransportRoutingRuleDeny TransportRoutingRuleAction = "deny" )
type TransportRoutingRuleTarget ¶
type TransportRoutingRuleTarget struct {
// Steps lists downstream step names that the rule applies to. Empty means all downstream steps.
// +optional
Steps []string `json:"steps,omitempty"`
}
TransportRoutingRuleTarget selects downstream steps for a routing rule.
func (*TransportRoutingRuleTarget) DeepCopy ¶
func (in *TransportRoutingRuleTarget) DeepCopy() *TransportRoutingRuleTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRoutingRuleTarget.
func (*TransportRoutingRuleTarget) DeepCopyInto ¶
func (in *TransportRoutingRuleTarget) DeepCopyInto(out *TransportRoutingRuleTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportRoutingSettings ¶
type TransportRoutingSettings struct {
// Mode selects the routing topology (auto chooses based on DAG analysis).
// +optional
Mode TransportRoutingMode `json:"mode,omitempty"`
// FanOut controls dispatch when multiple downstream steps consume a stream.
// +optional
FanOut TransportFanOutMode `json:"fanOut,omitempty"`
// MaxDownstreams caps the number of downstream targets per step (guardrail).
// +optional
// +kubebuilder:validation:Minimum=1
MaxDownstreams *int32 `json:"maxDownstreams,omitempty"`
// Rules define conditional routing filters evaluated per packet.
// +optional
Rules []TransportRoutingRule `json:"rules,omitempty"`
}
TransportRoutingSettings configures P2P vs hub and fan-out policies.
func (*TransportRoutingSettings) DeepCopy ¶
func (in *TransportRoutingSettings) DeepCopy() *TransportRoutingSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRoutingSettings.
func (*TransportRoutingSettings) DeepCopyInto ¶
func (in *TransportRoutingSettings) DeepCopyInto(out *TransportRoutingSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportSpec ¶
type TransportSpec struct {
// provider is the human-readable provider name (e.g., livekit, twilio, custom).
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Provider string `json:"provider"`
// driver is the connector driver identifier that should be used for bindings.
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Driver string `json:"driver"`
// connectorImage optionally declares the recommended connector image implementing this driver.
// +optional
ConnectorImage string `json:"connectorImage,omitempty"`
// supportedAudio lists the audio codecs supported by this transport.
// +optional
SupportedAudio []AudioCodec `json:"supportedAudio,omitempty"`
// supportedVideo lists the video codecs supported by this transport.
// +optional
SupportedVideo []VideoCodec `json:"supportedVideo,omitempty"`
// supportedBinary lists MIME types supported for generic binary payloads.
// +optional
SupportedBinary []string `json:"supportedBinary,omitempty"`
// streaming configures default streaming policies such as backpressure, flow control, and delivery.
// +optional
Streaming *TransportStreamingSettings `json:"streaming,omitempty"`
// configSchema optionally captures a JSONSchema for provider-specific settings.
// +optional
ConfigSchema *runtime.RawExtension `json:"configSchema,omitempty"`
// defaultSettings contains default provider-specific settings serialized as JSON.
// +optional
DefaultSettings *runtime.RawExtension `json:"defaultSettings,omitempty"`
}
TransportSpec defines a provider-neutral transport description.
func (*TransportSpec) DeepCopy ¶
func (in *TransportSpec) DeepCopy() *TransportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportSpec.
func (*TransportSpec) DeepCopyInto ¶
func (in *TransportSpec) DeepCopyInto(out *TransportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportStatus ¶
type TransportStatus struct {
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
ValidationStatus enums.ValidationStatus `json:"validationStatus,omitempty"`
ValidationErrors []string `json:"validationErrors,omitempty"`
UsageCount int32 `json:"usageCount,omitempty"`
// negotiatedAudio lists the codecs the connector actually exposes/negotiates.
// +optional
AvailableAudio []AudioCodec `json:"availableAudio,omitempty"`
// negotiatedVideo lists the video codecs the connector supports.
// +optional
AvailableVideo []VideoCodec `json:"availableVideo,omitempty"`
// negotiatedBinary lists MIME types the connector supports for binary payloads.
// +optional
AvailableBinary []string `json:"availableBinary,omitempty"`
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty"`
// pendingBindings tracks how many bindings still await negotiation.
// +optional
PendingBindings int32 `json:"pendingBindings,omitempty"`
// lastHeartbeat records when a binding last reported capabilities.
// +optional
LastHeartbeatTime *metav1.Time `json:"lastHeartbeatTime,omitempty"`
}
TransportStatus reports validation/usage state for a transport template.
func (*TransportStatus) DeepCopy ¶
func (in *TransportStatus) DeepCopy() *TransportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportStatus.
func (*TransportStatus) DeepCopyInto ¶
func (in *TransportStatus) DeepCopyInto(out *TransportStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportStreamingSettings ¶
type TransportStreamingSettings struct {
// Backpressure configures buffer limits and overflow behavior.
// +optional
Backpressure *TransportBackpressureSettings `json:"backpressure,omitempty"`
// FlowControl configures credit/window-based flow control.
// +optional
FlowControl *TransportFlowControlSettings `json:"flowControl,omitempty"`
// Delivery configures ordering, delivery semantics, and replay.
// +optional
Delivery *TransportDeliverySettings `json:"delivery,omitempty"`
// Routing configures topology selection and fan-out policy.
// +optional
Routing *TransportRoutingSettings `json:"routing,omitempty"`
// Lanes declares named streaming lanes (audio/video/binary/payload) and per-lane caps.
// +optional
Lanes []TransportLane `json:"lanes,omitempty"`
// FanIn configures how multiple upstream steps are joined at fan-in points.
// +optional
FanIn *TransportFanInSettings `json:"fanIn,omitempty"`
// Partitioning configures partition assignment for streaming envelopes.
// +optional
Partitioning *TransportPartitioningSettings `json:"partitioning,omitempty"`
// Lifecycle configures drain/cutover and in-flight guardrails.
// +optional
Lifecycle *TransportLifecycleSettings `json:"lifecycle,omitempty"`
// Observability configures metrics, tracing, and watermark tracking.
// +optional
Observability *TransportObservabilitySettings `json:"observability,omitempty"`
// Recording configures optional stream recording/sampling behavior.
// +optional
Recording *TransportRecordingSettings `json:"recording,omitempty"`
}
TransportStreamingSettings configures streaming policies for a transport.
func (*TransportStreamingSettings) DeepCopy ¶
func (in *TransportStreamingSettings) DeepCopy() *TransportStreamingSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportStreamingSettings.
func (*TransportStreamingSettings) DeepCopyInto ¶
func (in *TransportStreamingSettings) DeepCopyInto(out *TransportStreamingSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportTracingSettings ¶
type TransportTracingSettings struct {
// Enabled toggles tracing emission (default true).
// +optional
Enabled *bool `json:"enabled,omitempty"`
// SampleRate controls sampling percentage (0..100).
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
SampleRate *int32 `json:"sampleRate,omitempty"`
// SamplePolicy selects the sampling policy (e.g., "rate", "rules").
// +optional
SamplePolicy *string `json:"samplePolicy,omitempty"`
}
TransportTracingSettings controls tracing options.
func (*TransportTracingSettings) DeepCopy ¶
func (in *TransportTracingSettings) DeepCopy() *TransportTracingSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportTracingSettings.
func (*TransportTracingSettings) DeepCopyInto ¶
func (in *TransportTracingSettings) DeepCopyInto(out *TransportTracingSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransportUpgradeStrategy ¶
type TransportUpgradeStrategy string
TransportUpgradeStrategy defines how streaming upgrades are performed. +kubebuilder:validation:Enum=rolling;drain_cutover;blue_green
const ( TransportUpgradeRolling TransportUpgradeStrategy = "rolling" TransportUpgradeDrainCutover TransportUpgradeStrategy = "drain_cutover" TransportUpgradeBlueGreen TransportUpgradeStrategy = "blue_green" )
type TransportWatermarkSettings ¶
type TransportWatermarkSettings struct {
// Enabled toggles watermark and lag tracking.
// +optional
Enabled *bool `json:"enabled,omitempty"`
// TimestampSource selects the source for event-time timestamps (e.g., "metadata.event_time_ms").
// +optional
TimestampSource *string `json:"timestampSource,omitempty"`
}
TransportWatermarkSettings configures event-time watermark tracking.
func (*TransportWatermarkSettings) DeepCopy ¶
func (in *TransportWatermarkSettings) DeepCopy() *TransportWatermarkSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportWatermarkSettings.
func (*TransportWatermarkSettings) DeepCopyInto ¶
func (in *TransportWatermarkSettings) DeepCopyInto(out *TransportWatermarkSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VideoBinding ¶
type VideoBinding struct {
// direction indicates whether the owning engram publishes, subscribes, or both.
// +kubebuilder:validation:Required
Direction MediaDirection `json:"direction"`
// codecs enumerates supported codecs. Encoded pass-through drivers should
// declare the codecs they can forward.
// +optional
Codecs []VideoCodec `json:"codecs,omitempty"`
// raw indicates whether raw frames are required for processing (e.g., CV tasks).
// Drivers may use this hint to determine if decoding is necessary.
// +optional
Raw bool `json:"raw,omitempty"`
}
VideoBinding declares how video should flow across the connector.
func (*VideoBinding) DeepCopy ¶
func (in *VideoBinding) DeepCopy() *VideoBinding
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VideoBinding.
func (*VideoBinding) DeepCopyInto ¶
func (in *VideoBinding) DeepCopyInto(out *VideoBinding)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VideoCodec ¶
type VideoCodec struct {
// name of the codec (e.g., h264, vp8, raw-yuv420)
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=h264;vp8;vp9;av1;raw-yuv420;raw-rgb;raw-bgr
Name string `json:"name"`
// profile or format hint (e.g., baseline, high, rgb)
// +optional
Profile string `json:"profile,omitempty"`
}
VideoCodec describes a negotiated video codec or raw pixel format.
func (*VideoCodec) DeepCopy ¶
func (in *VideoCodec) DeepCopy() *VideoCodec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VideoCodec.
func (*VideoCodec) DeepCopyInto ¶
func (in *VideoCodec) DeepCopyInto(out *VideoCodec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.