v1alpha1

package
v0.1.13 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the transport v1alpha1 API group. +kubebuilder:object:generate=true +groupName=transport.bubustack.io

Index

Constants

This section is empty.

Variables

View Source
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

func (in *Transport) DeepCopy() *Transport

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Transport.

func (*Transport) DeepCopyInto

func (in *Transport) DeepCopyInto(out *Transport)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Transport) DeepCopyObject

func (in *Transport) DeepCopyObject() runtime.Object

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportBackpressureSettings.

func (*TransportBackpressureSettings) DeepCopyInto

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

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

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportDeliverySettings.

func (*TransportDeliverySettings) DeepCopyInto

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportFlowControlSettings.

func (*TransportFlowControlSettings) DeepCopyInto

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportLifecycleSettings.

func (*TransportLifecycleSettings) DeepCopyInto

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportObservabilitySettings.

func (*TransportObservabilitySettings) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportPartitioningSettings.

func (*TransportPartitioningSettings) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRecordingSettings.

func (*TransportRecordingSettings) DeepCopyInto

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportRoutingRuleTarget.

func (*TransportRoutingRuleTarget) DeepCopyInto

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportStreamingSettings.

func (*TransportStreamingSettings) DeepCopyInto

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransportWatermarkSettings.

func (*TransportWatermarkSettings) DeepCopyInto

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.

Jump to

Keyboard shortcuts

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