medialive

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2026 License: MIT Imports: 20 Imported by: 0

README

MediaLive

Parity grade: A · SDK aws-sdk-go-v2/service/medialive@v1.97.2 · last audited 2026-07-25 (6c48ab50cb35a7b8834b7fea50407931c6df3119)

Coverage

Metric Value
Known gaps 4
Deferred items 0
Resource leaks clean
Known gaps
  • Channel's EncoderSettings is modeled to a deliberately bounded depth (sweep 6, gopherstack-jb9i) -- see Channel's note above for the full list of what IS modeled. NOT modeled, and confirmed genuinely impractical to hand-model in a single pass (each is a per-technology/per-codec tagged union with a dozen-plus variants, several individually hundreds of lines in the SDK's own type definitions): AudioDescription.CodecSettings/ AudioNormalizationSettings/AudioWatermarkingSettings/RemixSettings (the ~20-variant AudioCodecSettings union and friends); VideoDescription.CodecSettings (the H264/H265/ AV1/MPEG2/FrameCapture VideoCodecSettings union); CaptionDescription.DestinationSettings (the ~15-variant CaptionDestinationSettings union); OutputGroup.OutputGroupSettings and Output.OutputSettings (the ~13-variant OutputGroupSettings/OutputSettings unions -- Archive/ CmafIngest/FrameCapture/Hls/MediaConnectRouter/MediaPackage/MsSmooth/Multiplex/Rtmp/Srt/Udp, each itself dozens of fields); EncoderSettings.AvailConfiguration/ColorCorrectionSettings/ MotionGraphicsConfiguration/NielsenConfiguration. None of these are accepted as an opaque passthrough blob -- a caller setting any of them today gets a 201/200 response but the value is cleanly absent (never echoed back by Describe/List), not silently corrupted or faked. (bd: gopherstack-jb9i closed the 12-of-17-member gap; this residual sub-field depth would need its own follow-up issue if "true AWS parity" on the codec/output-technology unions specifically is ever prioritized.)
  • InputAttachment.InputSettings (per-attachment audio/caption/video selector configuration -- AudioSelectors' per-codec AudioSelectorSettings union, CaptionSelectors' per-format CaptionSelectorSettings union, VideoSelector's color-space union, NetworkInputSettings) is NOT modeled -- comparable in size/depth to EncoderSettings' own codec-settings gap above. InputAttachmentName/InputId/LogicalInterfaceNames/AutomaticInputFailoverSettings (including all 3 failover-condition variants) ARE modeled in full (sweep 6).
  • Channel.Vpc's response-side availabilityZones/networkInterfaceIds (types. VpcOutputSettingsDescription) are always omitted -- MediaLive computes them from a real VPC/ENI integration gopherstack does not have. The request-side subnetIds/ publicAddressAllocationIds/securityGroupIds ARE modeled and echoed back (sweep 6).
  • Deep state/error-code audit of Cluster, Node, SignalMap, Reservation/Offering purchase flow, Batch semantics beyond the wire-casing scope of sweep 4 and the association/ leak/new-field fixes sweep 5 made was not re-performed (route matching for all of them was verified correct in sweep 4; op-by-op state-machine correctness beyond what these two passes touched was not re-verified).

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrConflict = awserr.New("ConflictException", awserr.ErrAlreadyExists)

ErrConflict is returned for state conflict operations.

View Source
var ErrInvalidParameter = awserr.New("BadRequestException", awserr.ErrInvalidParameter)

ErrInvalidParameter is returned for invalid input.

View Source
var ErrNilAppContext = errors.New("AppContext is required")

ErrNilAppContext is returned when Provider.Init is called with a nil AppContext.

View Source
var ErrNotFound = awserr.New("NotFoundException", awserr.ErrNotFound)

ErrNotFound is returned when a resource does not exist.

Functions

This section is empty.

Types

type AccountConfiguration

type AccountConfiguration struct {
	KmsKeyID string
}

AccountConfiguration holds account-wide MediaLive settings.

type AudioDescription added in v1.2.0

type AudioDescription struct {
	Name                string
	AudioSelectorName   string
	LanguageCode        string
	LanguageCodeControl string
	AudioType           string
	AudioTypeControl    string
	StreamName          string
}

AudioDescription names one audio encode derived from an input audio selector. Wire keys "audioSelectorName"/"audioType"/"audioTypeControl"/ "languageCode"/"languageCodeControl"/"name"/"streamName" -- verified against types.AudioDescription. CodecSettings/AudioNormalizationSettings/ AudioWatermarkingSettings/RemixSettings/AudioDashRoles/ DvbDashAccessibility (per-codec and DVB-DASH-accessibility unions) are deliberately NOT modeled; see PARITY.md's gaps entry.

type AudioFeedInputMapping added in v1.2.0

type AudioFeedInputMapping struct {
	AudioSelectorName string
	FeedInput         string
}

AudioFeedInputMapping maps an audio selector in the channel to a feed input on an associated Elemental Inference feed. Wire keys "audioSelectorName"/"feedInput" -- verified against types.AudioFeedInput.

type AudioSilenceFailoverSettings added in v1.2.0

type AudioSilenceFailoverSettings struct {
	AudioSelectorName         string
	AudioSilenceThresholdMsec int32
}

AudioSilenceFailoverSettings / InputLossFailoverSettings / VideoBlackFailoverSettings are the three named failover-condition variants (types.AudioSilenceFailoverSettings/types.InputLossFailoverSettings/ types.VideoBlackFailoverSettings). Unlike the codec-settings unions (dozens of variants, each itself deep), this union has exactly 3 small flat variants, so it's modeled in full rather than treated as a gap.

type AvailBlanking added in v1.2.0

type AvailBlanking struct {
	AvailBlankingImage InputLocation
	State              string
}

AvailBlanking configures ad-avail blanking. Wire keys "availBlankingImage"/"state" -- verified against types.AvailBlanking.

type BatchFailedResult

type BatchFailedResult struct {
	Arn     string
	ID      string
	Code    string
	Message string
}

BatchFailedResult is a failed result in a batch operation.

type BatchResult

type BatchResult struct {
	Successful []BatchSuccessfulResult
	Failed     []BatchFailedResult
}

BatchResult holds results of a batch start/stop/delete.

type BatchSuccessfulResult

type BatchSuccessfulResult struct {
	Arn   string
	ID    string
	State string
}

BatchSuccessfulResult is a successful result in a batch operation.

type BatchUpdateScheduleResult

type BatchUpdateScheduleResult struct {
	Creates []ScheduleAction
	Deletes []ScheduleAction
}

BatchUpdateScheduleResult holds the result of BatchUpdateSchedule.

type BlackoutSlate added in v1.2.0

type BlackoutSlate struct {
	BlackoutSlateImage      InputLocation
	NetworkEndBlackoutImage InputLocation
	NetworkEndBlackout      string
	NetworkID               string
	State                   string
}

BlackoutSlate configures SCTE-104/35 network-blackout behavior. Wire keys "blackoutSlateImage"/"networkEndBlackout"/"networkEndBlackoutImage"/ "networkId"/"state" -- verified against types.BlackoutSlate.

type CaptionDescription added in v1.2.0

type CaptionDescription struct {
	CaptionSelectorName  string
	Name                 string
	Accessibility        string
	DvbDashAccessibility string
	LanguageCode         string
	LanguageDescription  string
}

CaptionDescription names one caption output derived from an input caption selector. Wire keys "captionSelectorName"/"name"/"accessibility"/ "dvbDashAccessibility"/"languageCode"/"languageDescription" -- verified against types.CaptionDescription. DestinationSettings (the ~15-variant per-format union: burn-in/DVB-Sub/SCTE-27/WebVTT/etc) and CaptionDashRoles are deliberately NOT modeled; see PARITY.md's gaps entry.

type CdiInputSpecification added in v1.2.0

type CdiInputSpecification struct {
	Resolution string
}

CdiInputSpecification specifies the maximum CDI input resolution for a channel. Wire key "cdiInputSpecification.resolution" -- verified against types.CdiInputSpecification.

type Channel

type Channel struct {
	Tags                  map[string]string
	Maintenance           ChannelMaintenance
	InputSpecification    InputSpecification
	ChannelEngineVersion  ChannelEngineVersion
	AnywhereSettings      ChannelAnywhereSettings
	LogLevel              string
	CdiInputSpecification CdiInputSpecification
	ChannelClass          string
	RoleARN               string
	State                 string
	ID                    string
	ARN                   string
	Name                  string
	LinkedChannelSettings ChannelLinkedChannelSettings
	Vpc                   ChannelVpcSettings
	InferenceSettings     ChannelInferenceSettings
	InputAttachments      []ChannelInputAttachment
	Destinations          []ChannelOutputDestination
	ChannelSecurityGroups []string
	EncoderSettings       EncoderSettings
}

Channel represents a MediaLive channel. Tags first: reduces GC pointer scan from 104 to 96 bytes.

type ChannelAnywhereSettings added in v1.2.0

type ChannelAnywhereSettings struct {
	ClusterID               string
	ChannelPlacementGroupID string
}

ChannelAnywhereSettings holds the MediaLive Anywhere Cluster/ ChannelPlacementGroup association for a Channel. Wire keys (anywhereSettings.clusterId/channelPlacementGroupId) verified against aws-sdk-go-v2/service/medialive's types.AnywhereSettings. Before this fix, gopherstack didn't track this at all: CreateChannel/UpdateChannel silently dropped a caller's anywhereSettings, and Cluster.ChannelIds/ ChannelPlacementGroup.Channels/Node.ChannelPlacementGroups (all real wire fields) had nothing to derive from and were hardcoded to empty lists.

type ChannelAutomaticInputFailoverSettings added in v1.2.0

type ChannelAutomaticInputFailoverSettings struct {
	SecondaryInputID   string
	InputPreference    string
	FailoverConditions []ChannelFailoverCondition
	ErrorClearTimeMsec int32
}

ChannelAutomaticInputFailoverSettings configures automatic input failover for an InputAttachment. Wire keys "secondaryInputId"/"errorClearTimeMsec"/ "failoverConditions"/"inputPreference" -- verified against types.AutomaticInputFailoverSettings.

type ChannelCreateExtras added in v1.2.0

type ChannelCreateExtras struct {
	InputSpecification    InputSpecification
	Maintenance           ChannelMaintenance
	ChannelEngineVersion  ChannelEngineVersion
	CdiInputSpecification CdiInputSpecification
	LogLevel              string
	LinkedChannelSettings ChannelLinkedChannelSettings
	Vpc                   ChannelVpcSettings
	InferenceSettings     ChannelInferenceSettings
	ChannelSecurityGroups []string
	Destinations          []ChannelOutputDestination
	InputAttachments      []ChannelInputAttachment
	EncoderSettings       EncoderSettings
}

ChannelCreateExtras bundles the 11 CreateChannelInput members added by gopherstack-jb9i beyond name/channelClass/roleArn/tags/anywhereSettings (which remain direct CreateChannel parameters, matching the pre-existing convention) so CreateChannel's signature doesn't balloon to 15+ positional parameters. A zero-valued field means "not configured", matching a real CreateChannelInput that omits the corresponding member -- no presence tracking is needed for Create, unlike Update (see ChannelUpdateExtras).

type ChannelEngineVersion

type ChannelEngineVersion struct {
	ExpirationDate string
	Version        string
}

ChannelEngineVersion is an available channel engine version.

type ChannelFailoverCondition added in v1.2.0

type ChannelFailoverCondition struct {
	Settings ChannelFailoverConditionSettings
}

ChannelFailoverCondition wraps one FailoverConditionSettings entry (types.FailoverCondition -- a single-field wrapper struct on the real SDK too, kept here for wire-shape fidelity rather than flattened away).

type ChannelFailoverConditionSettings added in v1.2.0

type ChannelFailoverConditionSettings struct {
	AudioSilenceSettings *AudioSilenceFailoverSettings
	InputLossSettings    *InputLossFailoverSettings
	VideoBlackSettings   *VideoBlackFailoverSettings
}

ChannelFailoverConditionSettings is the tagged union of failover-detection methods (types.FailoverConditionSettings); at most one variant is set.

type ChannelFollowerSettings added in v1.2.0

type ChannelFollowerSettings struct {
	LinkedChannelType string
	PrimaryChannelArn string
}

ChannelFollowerSettings holds a follower channel's linked-channel configuration. Wire keys "linkedChannelType"/"primaryChannelArn" -- verified against types.FollowerChannelSettings (request). The response shape's primary side (types.DescribePrimaryChannelSettings) additionally reports "followingChannelArns", a value MediaLive derives from every OTHER channel's follower settings; gopherstack derives it the same way at read time (see followingChannelArns in channels.go) rather than storing it -- see ChannelPrimarySettings below.

type ChannelInferenceSettings added in v1.2.0

type ChannelInferenceSettings struct {
	FeedArn         string
	AudioFeedInputs []AudioFeedInputMapping
}

ChannelInferenceSettings configures Elemental Inference features for a channel. Wire keys "audioFeedInputs"/"feedArn" -- verified against types.InferenceSettings/types.DescribeInferenceSettings (identical shape on request and response).

type ChannelInputAttachment added in v1.2.0

type ChannelInputAttachment struct {
	LogicalInterfaceNames          []string
	InputAttachmentName            string
	InputID                        string
	AutomaticInputFailoverSettings ChannelAutomaticInputFailoverSettings
}

ChannelInputAttachment attaches an Input to a Channel (types.InputAttachment). InputSettings (per-attachment audio/caption/video selector configuration -- itself a deep union comparable in size to EncoderSettings' codec settings) is deliberately NOT modeled; see PARITY.md's gaps entry for this family.

type ChannelLinkedChannelSettings added in v1.2.0

type ChannelLinkedChannelSettings struct {
	Follower ChannelFollowerSettings
	Primary  ChannelPrimarySettings
}

ChannelLinkedChannelSettings is a channel's linked-channel configuration (types.LinkedChannelSettings). Only one of Follower/Primary is normally set, matching AWS: a channel is either a follower or a primary, never both.

type ChannelMaintenance added in v1.2.0

type ChannelMaintenance struct {
	Day           string
	StartTime     string
	ScheduledDate string
}

ChannelMaintenance holds a channel's maintenance window configuration. Create accepts day/startTime (types.MaintenanceCreateSettings); Update additionally accepts scheduledDate (types.MaintenanceUpdateSettings). The response shape (types.MaintenanceStatus) also reports a computed maintenanceDeadline that gopherstack has no scheduler to derive -- always omitted, never fabricated.

type ChannelOutputDestination added in v1.2.0

type ChannelOutputDestination struct {
	ID                         string
	LogicalInterfaceNames      []string
	MediaConnectRouterSettings []MediaConnectRouterDestinationSettings
	MediaPackageSettings       []MediaPackageDestinationSettings
	MultiplexSettings          *MultiplexDestinationSettings
	Settings                   []OutputDestinationSetting
	SrtSettings                []SrtDestinationSettings
}

ChannelOutputDestination is one entry of EncoderSettings' output routing table (types.OutputDestination). Modeled in full -- unlike EncoderSettings' per-output-group/per-output settings (see OutputGroup below), every OutputDestination member is itself a flat, small, non-recursive struct, so there is no "genuinely impractical union depth" carve-out needed here.

type ChannelPlacementGroup

type ChannelPlacementGroup struct {
	Tags      map[string]string
	ARN       string
	ID        string
	Name      string
	ClusterID string
	State     string
	Channels  []string
	Nodes     []string
}

ChannelPlacementGroup represents a placement group within a cluster.

type ChannelPrimarySettings added in v1.2.0

type ChannelPrimarySettings struct {
	LinkedChannelType    string
	FollowingChannelArns []string
}

ChannelPrimarySettings is a primary channel's linked-channel settings. FollowingChannelArns is derived (never accepted on a request -- extraction never populates it), same pattern as Cluster.ChannelIDs/ ChannelPlacementGroup.Channels: computed at read time by followingChannelArns (channels.go) and stamped onto the returned domain object right before Describe/Create/Update/List/Start/Stop hand it back.

type ChannelSummary

type ChannelSummary struct {
	ARN                   string
	ID                    string
	Name                  string
	ChannelClass          string
	State                 string
	LogLevel              string
	ChannelSecurityGroups []string
	Destinations          []ChannelOutputDestination
	InputAttachments      []ChannelInputAttachment
	AnywhereSettings      ChannelAnywhereSettings
	CdiInputSpecification CdiInputSpecification
	ChannelEngineVersion  ChannelEngineVersion
	InferenceSettings     ChannelInferenceSettings
	InputSpecification    InputSpecification
	LinkedChannelSettings ChannelLinkedChannelSettings
	Maintenance           ChannelMaintenance
	Vpc                   ChannelVpcSettings
}

ChannelSummary is a channel in a list response. Same shape as Channel minus EncoderSettings -- a real ListChannelsOutput/ChannelSummary never returns the (potentially huge) encoder configuration, verified against types.ChannelSummary.

type ChannelUpdateExtras added in v1.2.0

type ChannelUpdateExtras struct {
	Maintenance              ChannelMaintenance
	InputSpecification       InputSpecification
	ChannelEngineVersion     ChannelEngineVersion
	LogLevel                 string
	CdiInputSpecification    CdiInputSpecification
	Vpc                      ChannelVpcSettings
	LinkedChannelSettings    ChannelLinkedChannelSettings
	InferenceSettings        ChannelInferenceSettings
	Destinations             []ChannelOutputDestination
	InputAttachments         []ChannelInputAttachment
	ChannelSecurityGroups    []string
	EncoderSettings          EncoderSettings
	HasChannelSecurityGroups bool
	HasInputAttachments      bool
	HasDestinations          bool
	HasInputSpecification    bool
	HasEncoderSettings       bool
	HasLinkedChannelSettings bool
	HasInferenceSettings     bool
	HasLogLevel              bool
	HasChannelEngineVersion  bool
	HasMaintenance           bool
	HasCdiInputSpecification bool
	HasVpc                   bool
}

ChannelUpdateExtras is ChannelCreateExtras' Update-side counterpart. Each field is paired with a HasX flag so UpdateChannel can distinguish "the caller omitted this member" (leave unchanged) from "the caller sent an explicit, possibly zero, value" (overwrite) -- the same "include this parameter only if you want to change it" convention already used by UpdateChannel's anywhereSettings and UpdateCluster's networkSettings.

type ChannelVpcSettings added in v1.2.0

type ChannelVpcSettings struct {
	SubnetIDs                  []string
	PublicAddressAllocationIDs []string
	SecurityGroupIDs           []string
}

ChannelVpcSettings holds the caller-supplied VPC output configuration (request shape types.VpcOutputSettings: subnetIds/publicAddressAllocationIds/ securityGroupIds). The response shape (types.VpcOutputSettingsDescription) additionally reports availabilityZones/networkInterfaceIds -- values MediaLive computes from a real VPC/ENI integration that gopherstack does not have; left omitted on output rather than fabricated (same convention as ChannelEngineVersion's ExpirationDate below).

type CloudWatchAlarmTemplate

type CloudWatchAlarmTemplate struct {
	CreatedAt          time.Time
	ModifiedAt         time.Time
	Tags               map[string]string
	Arn                string
	ID                 string
	Name               string
	Description        string
	GroupID            string
	GroupIdentifier    string
	MetricName         string
	Namespace          string
	Statistic          string
	ComparisonOperator string
	TargetResourceType string
	TreatMissingData   string
	Threshold          float64
	EvaluationPeriods  int32
	DatapointsToAlarm  int32
	Period             int32
}

CloudWatchAlarmTemplate is a template for generating CloudWatch alarms.

type CloudWatchAlarmTemplateGroup

type CloudWatchAlarmTemplateGroup struct {
	CreatedAt   time.Time
	ModifiedAt  time.Time
	Tags        map[string]string
	Arn         string
	ID          string
	Name        string
	Description string
}

CloudWatchAlarmTemplateGroup is a named group for CloudWatch alarm templates.

type CloudWatchAlarmTemplateGroupSummary added in v1.2.0

type CloudWatchAlarmTemplateGroupSummary struct {
	CloudWatchAlarmTemplateGroup
	TemplateCount int32
}

CloudWatchAlarmTemplateGroupSummary is a CloudWatchAlarmTemplateGroup in a list response. The real ListCloudWatchAlarmTemplateGroupsOutput items use the CloudWatchAlarmTemplateGroupSummary shape, which has "templateCount" -- a field that does NOT exist on Get/Create/Update's response shape (verified against aws-sdk-go-v2/service/medialive's CloudWatchAlarmTemplateGroupSummary vs CloudWatchAlarmTemplateGroup types).

type Cluster

type Cluster struct {
	Tags            map[string]string
	NetworkSettings ClusterNetworkSettings
	ARN             string
	ID              string
	Name            string
	ClusterType     string
	InstanceRoleArn string
	State           string
	ChannelIDs      []string
}

Cluster represents a MediaLive Anywhere Cluster resource. Tags first: reduces GC pointer scan.

type ClusterNetworkSettings added in v1.2.0

type ClusterNetworkSettings struct {
	DefaultRoute      string
	InterfaceMappings []InterfaceMapping
}

ClusterNetworkSettings connects the Nodes in a Cluster to one or more of the Networks the Cluster is associated with. A real DescribeCluster/ CreateCluster/UpdateCluster/ListClusters response's "networkSettings" is nil/absent until the caller configures it (verified against aws-sdk-go-v2/service/medialive's ClusterNetworkSettings type and DescribeClusterOutput's deserializer) -- gopherstack tracked NO fields for this at all before this fix, silently dropping every caller's networkSettings on Create/UpdateCluster.

type ClusterSummary

type ClusterSummary struct {
	NetworkSettings ClusterNetworkSettings
	ARN             string
	ID              string
	Name            string
	ClusterType     string
	InstanceRoleArn string
	State           string
	ChannelIDs      []string
}

ClusterSummary is a Cluster in a list response.

type DisabledLockingSettings added in v1.2.0

type DisabledLockingSettings struct {
	CustomEpoch string
}

DisabledLockingSettings / EpochLockingSettings / PipelineLockingSettings are the three OutputLockingSettings variants (types.DisabledLockingSettings/ types.EpochLockingSettings/types.PipelineLockingSettings) -- a 3-way union of small flat structs, modeled in full like the failover-condition union above.

type EncoderOutput added in v1.2.0

type EncoderOutput struct {
	OutputName              string
	VideoDescriptionName    string
	AudioDescriptionNames   []string
	CaptionDescriptionNames []string
}

EncoderOutput names one encoder output and the AudioDescription/ CaptionDescription/VideoDescription names it draws from (types.Output -- named EncoderOutput here, not Output, to avoid colliding with this package's unrelated Output* helper types). Wire keys "audioDescriptionNames"/"captionDescriptionNames"/"outputName"/ "videoDescriptionName" -- verified against types.Output. OutputSettings (the per-output-technology union: Archive/CmafIngest/FrameCapture/Hls/ MediaConnectRouter/MediaPackage/MsSmooth/Multiplex/Rtmp/Srt/ UdpOutputSettings, each itself large) is deliberately NOT modeled; see PARITY.md's gaps entry.

type EncoderSettings added in v1.2.0

type EncoderSettings struct {
	BlackoutSlate          BlackoutSlate
	AvailBlanking          AvailBlanking
	FeatureActivations     FeatureActivations
	ThumbnailConfiguration ThumbnailConfiguration
	AudioDescriptions      []AudioDescription
	VideoDescriptions      []VideoDescription
	CaptionDescriptions    []CaptionDescription
	OutputGroups           []OutputGroup
	TimecodeConfig         TimecodeConfig
	GlobalConfiguration    GlobalConfiguration
}

EncoderSettings is EncoderSettings' modeled subset -- see the per-type doc comments above and PARITY.md's gaps entry for exactly what's excluded (the per-codec AudioCodecSettings/VideoCodecSettings unions, the per-output-technology OutputGroupSettings/OutputSettings unions, the per-caption-format CaptionDestinationSettings union, AvailConfiguration, ColorCorrectionSettings, MotionGraphicsConfiguration, NielsenConfiguration) and why. AudioDescriptions/VideoDescriptions/ OutputGroups/TimecodeConfig are required on a real CreateChannelInput's EncoderSettings; gopherstack accepts a partial value (matching every other optional-nested-object family in this service) since it does not perform AWS's own request validation.

type EpochLockingSettings added in v1.2.0

type EpochLockingSettings struct {
	CustomEpoch string
	JamSyncTime string
}

EpochLockingSettings locks pipeline output to the Unix epoch (optionally a custom one).

type EventBridgeRuleTemplate

type EventBridgeRuleTemplate struct {
	CreatedAt       time.Time
	ModifiedAt      time.Time
	Tags            map[string]string
	Arn             string
	ID              string
	Name            string
	Description     string
	GroupID         string
	GroupIdentifier string
	EventType       string
	EventTargets    []EventBridgeRuleTemplateTarget
}

EventBridgeRuleTemplate is a template for EventBridge rules.

type EventBridgeRuleTemplateGroup

type EventBridgeRuleTemplateGroup struct {
	CreatedAt   time.Time
	ModifiedAt  time.Time
	Tags        map[string]string
	Arn         string
	ID          string
	Name        string
	Description string
}

EventBridgeRuleTemplateGroup is a named group for EventBridge rule templates.

type EventBridgeRuleTemplateGroupSummary added in v1.2.0

type EventBridgeRuleTemplateGroupSummary struct {
	EventBridgeRuleTemplateGroup
	TemplateCount int32
}

EventBridgeRuleTemplateGroupSummary is an EventBridgeRuleTemplateGroup in a list response -- same "templateCount only on the List Summary shape" nuance as CloudWatchAlarmTemplateGroupSummary (see its doc comment).

type EventBridgeRuleTemplateSummary added in v1.2.0

type EventBridgeRuleTemplateSummary struct {
	EventBridgeRuleTemplate
	EventTargetCount int32
}

EventBridgeRuleTemplateSummary is an EventBridgeRuleTemplate in a list response. The real ListEventBridgeRuleTemplatesOutput items use the EventBridgeRuleTemplateSummary shape, which has "eventTargetCount" (an integer) instead of the full "eventTargets" array (verified against aws-sdk-go-v2/service/medialive's EventBridgeRuleTemplateSummary vs EventBridgeRuleTemplate types).

type EventBridgeRuleTemplateTarget

type EventBridgeRuleTemplateTarget struct {
	Arn string `json:"arn"`
}

EventBridgeRuleTemplateTarget is a target ARN for an EventBridge rule.

type FeatureActivations added in v1.2.0

type FeatureActivations struct {
	InputPrepareScheduleActions             string
	OutputStaticImageOverlayScheduleActions string
}

FeatureActivations toggles opt-in encoder features. Wire keys "inputPrepareScheduleActions"/"outputStaticImageOverlayScheduleActions" -- verified against types.FeatureActivations.

type GlobalConfiguration added in v1.2.0

type GlobalConfiguration struct {
	OutputLockingSettings     OutputLockingSettings
	InputEndAction            string
	OutputLockingMode         string
	OutputTimingSource        string
	SupportLowFramerateInputs string
	InputLossBehavior         InputLossBehavior
	InitialAudioGain          int32
}

GlobalConfiguration holds event-wide encoder settings. Wire keys "initialAudioGain"/"inputEndAction"/"inputLossBehavior"/ "outputLockingMode"/"outputLockingSettings"/"outputTimingSource"/ "supportLowFramerateInputs" -- verified against types.GlobalConfiguration.

type Handler

type Handler struct {
	Backend StorageBackend
}

Handler handles MediaLive HTTP requests.

func NewHandler

func NewHandler(b StorageBackend) *Handler

NewHandler constructs a new Handler.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation classifies the request into an operation name.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource returns the resource identifier from the request.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns all supported operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset resets the backend.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a function that matches MediaLive requests by path.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend.

h.Backend is the StorageBackend interface, which already declares Snapshot(ctx context.Context) []byte (see interfaces.go) with a shape matching persistence.Persistable exactly, so this can call it directly -- no local type assertion needed. But interface membership alone does not help: h.Backend is a named field, not an embedded one, so InMemoryBackend's methods are never promoted onto *Handler. Without this delegation, cli.go's setupPersistence type-asserts the registered service.Registerable (this *Handler) against persistence.Persistable, fails silently, and never registers medialive for snapshot/restore despite the backend being fully capable. Mirrors services/securityhub's Handler-level delegation.

type IPPool

type IPPool struct {
	Cidr string `json:"cidr"`
}

IPPool is a CIDR pool for a Network.

type InMemoryBackend

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

InMemoryBackend is an in-memory implementation of StorageBackend.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend.

func (*InMemoryBackend) AcceptInputDeviceTransfer

func (b *InMemoryBackend) AcceptInputDeviceTransfer(deviceID string) error

AcceptInputDeviceTransfer accepts an incoming transfer and completes it.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the configured account ID.

func (*InMemoryBackend) BatchDelete

func (b *InMemoryBackend) BatchDelete(
	channelIDs, inputIDs, multiplexIDs, inputSecurityGroupIDs []string,
) (*BatchResult, error)

BatchDelete deletes channels/inputs/multiplexes/input-security-groups in bulk.

func (*InMemoryBackend) BatchStart

func (b *InMemoryBackend) BatchStart(
	channelIDs, multiplexIDs []string,
) (*BatchResult, error)

BatchStart starts channels/multiplexes in bulk (BatchStartInput has no inputIds field in the real API).

func (*InMemoryBackend) BatchStop

func (b *InMemoryBackend) BatchStop(
	channelIDs, multiplexIDs []string,
) (*BatchResult, error)

BatchStop stops channels/multiplexes in bulk (BatchStopInput has no inputIds field in the real API).

func (*InMemoryBackend) BatchUpdateSchedule

func (b *InMemoryBackend) BatchUpdateSchedule(
	channelID string,
	creates []ScheduleAction,
	deleteActionNames []string,
) (*BatchUpdateScheduleResult, error)

BatchUpdateSchedule adds/removes schedule actions for a channel.

func (*InMemoryBackend) CancelInputDeviceTransfer

func (b *InMemoryBackend) CancelInputDeviceTransfer(deviceID string) error

CancelInputDeviceTransfer cancels an outgoing transfer.

func (*InMemoryBackend) ClaimDevice

func (b *InMemoryBackend) ClaimDevice(id string) (*InputDevice, error)

ClaimDevice registers a device (by ID) into this account.

func (*InMemoryBackend) CreateChannel

func (b *InMemoryBackend) CreateChannel(
	name, channelClass, roleArn string,
	anywhereSettings ChannelAnywhereSettings,
	extras ChannelCreateExtras,
	tags map[string]string,
) (*Channel, error)

CreateChannel creates a new channel.

func (*InMemoryBackend) CreateChannelPlacementGroup

func (b *InMemoryBackend) CreateChannelPlacementGroup(
	clusterID, name string,
	nodes []string,
	tags map[string]string,
) (*ChannelPlacementGroup, error)

CreateChannelPlacementGroup creates a placement group within a cluster.

func (*InMemoryBackend) CreateCloudWatchAlarmTemplate

func (b *InMemoryBackend) CreateCloudWatchAlarmTemplate(
	name string,
	description string,
	groupIdentifier string,
	metricName string,
	namespace string,
	statistic string,
	comparisonOperator string,
	targetResourceType string,
	treatMissingData string,
	threshold float64,
	evaluationPeriods, datapointsToAlarm, period int32,
	tags map[string]string,
) (*CloudWatchAlarmTemplate, error)

CreateCloudWatchAlarmTemplate creates a new CW alarm template.

func (*InMemoryBackend) CreateCloudWatchAlarmTemplateGroup

func (b *InMemoryBackend) CreateCloudWatchAlarmTemplateGroup(
	name, description string, tags map[string]string,
) (*CloudWatchAlarmTemplateGroup, error)

CreateCloudWatchAlarmTemplateGroup creates a new CW alarm template group.

func (*InMemoryBackend) CreateCluster

func (b *InMemoryBackend) CreateCluster(
	name, clusterType, instanceRoleArn string,
	networkSettings ClusterNetworkSettings,
	tags map[string]string,
) (*Cluster, error)

CreateCluster creates a new Cluster.

func (*InMemoryBackend) CreateEventBridgeRuleTemplate

func (b *InMemoryBackend) CreateEventBridgeRuleTemplate(
	name, description, groupIdentifier, eventType string,
	eventTargets []EventBridgeRuleTemplateTarget,
	tags map[string]string,
) (*EventBridgeRuleTemplate, error)

CreateEventBridgeRuleTemplate creates a new EB rule template.

func (*InMemoryBackend) CreateEventBridgeRuleTemplateGroup

func (b *InMemoryBackend) CreateEventBridgeRuleTemplateGroup(
	name, description string, tags map[string]string,
) (*EventBridgeRuleTemplateGroup, error)

CreateEventBridgeRuleTemplateGroup creates a new EB rule template group.

func (*InMemoryBackend) CreateInput

func (b *InMemoryBackend) CreateInput(
	name, inputType, roleArn string,
	tags map[string]string,
) (*Input, error)

CreateInput creates a new input.

func (*InMemoryBackend) CreateInputSecurityGroup

func (b *InMemoryBackend) CreateInputSecurityGroup(
	whitelistRules []WhitelistRule,
	tags map[string]string,
) (*InputSecurityGroup, error)

CreateInputSecurityGroup creates a new input security group.

func (*InMemoryBackend) CreateMultiplex

func (b *InMemoryBackend) CreateMultiplex(
	name string,
	availabilityZones []string,
	settings MultiplexSettings,
	tags map[string]string,
) (*Multiplex, error)

CreateMultiplex creates a new Multiplex.

func (*InMemoryBackend) CreateMultiplexProgram

func (b *InMemoryBackend) CreateMultiplexProgram(
	multiplexID string,
	prog MultiplexProgramSettings,
) (*MultiplexProgram, error)

CreateMultiplexProgram creates a program within a Multiplex.

func (*InMemoryBackend) CreateNetwork

func (b *InMemoryBackend) CreateNetwork(
	name string,
	ipPools []IPPool,
	routes []Route,
	tags map[string]string,
) (*Network, error)

CreateNetwork creates a new Network.

func (*InMemoryBackend) CreateNode

func (b *InMemoryBackend) CreateNode(
	clusterID, name, role string,
	tags map[string]string,
) (*Node, error)

CreateNode creates a Node within a Cluster.

func (*InMemoryBackend) CreateNodeRegistrationScript

func (b *InMemoryBackend) CreateNodeRegistrationScript(clusterID string) (string, error)

CreateNodeRegistrationScript returns a registration script for a Cluster Node.

func (*InMemoryBackend) CreatePartnerInput

func (b *InMemoryBackend) CreatePartnerInput(
	inputID string,
	tags map[string]string,
) (*Input, error)

CreatePartnerInput creates a partner input linked to an existing input.

func (*InMemoryBackend) CreateSdiSource

func (b *InMemoryBackend) CreateSdiSource(
	name, sdiType, mode string,
	_ map[string]string,
) (*SdiSource, error)

CreateSdiSource creates a new SDI source.

func (*InMemoryBackend) CreateSignalMap

func (b *InMemoryBackend) CreateSignalMap(
	name, description, discoveryEntryPointArn string,
	cwGroupIDs, ebGroupIDs []string,
	tags map[string]string,
) (*SignalMap, error)

CreateSignalMap creates a new signal map.

func (*InMemoryBackend) CreateTags

func (b *InMemoryBackend) CreateTags(resourceARN string, tags map[string]string) error

CreateTags adds tags to a resource.

func (*InMemoryBackend) DeleteChannel

func (b *InMemoryBackend) DeleteChannel(channelID string) (*Channel, error)

DeleteChannel deletes a channel.

func (*InMemoryBackend) DeleteChannelPlacementGroup

func (b *InMemoryBackend) DeleteChannelPlacementGroup(
	clusterID, groupID string,
) (*ChannelPlacementGroup, error)

DeleteChannelPlacementGroup deletes a placement group.

func (*InMemoryBackend) DeleteCloudWatchAlarmTemplate

func (b *InMemoryBackend) DeleteCloudWatchAlarmTemplate(identifier string) error

DeleteCloudWatchAlarmTemplate deletes a CW alarm template.

func (*InMemoryBackend) DeleteCloudWatchAlarmTemplateGroup

func (b *InMemoryBackend) DeleteCloudWatchAlarmTemplateGroup(identifier string) error

DeleteCloudWatchAlarmTemplateGroup deletes a CW alarm template group.

func (*InMemoryBackend) DeleteCluster

func (b *InMemoryBackend) DeleteCluster(clusterID string) (*Cluster, error)

DeleteCluster deletes a Cluster.

func (*InMemoryBackend) DeleteEventBridgeRuleTemplate

func (b *InMemoryBackend) DeleteEventBridgeRuleTemplate(identifier string) error

DeleteEventBridgeRuleTemplate deletes an EB rule template.

func (*InMemoryBackend) DeleteEventBridgeRuleTemplateGroup

func (b *InMemoryBackend) DeleteEventBridgeRuleTemplateGroup(identifier string) error

DeleteEventBridgeRuleTemplateGroup deletes an EB rule template group.

func (*InMemoryBackend) DeleteInput

func (b *InMemoryBackend) DeleteInput(inputID string) error

DeleteInput deletes an input.

func (*InMemoryBackend) DeleteInputSecurityGroup

func (b *InMemoryBackend) DeleteInputSecurityGroup(groupID string) error

DeleteInputSecurityGroup deletes an input security group.

func (*InMemoryBackend) DeleteMultiplex

func (b *InMemoryBackend) DeleteMultiplex(multiplexID string) (*Multiplex, error)

DeleteMultiplex deletes a Multiplex.

func (*InMemoryBackend) DeleteMultiplexProgram

func (b *InMemoryBackend) DeleteMultiplexProgram(
	multiplexID, programName string,
) (*MultiplexProgram, error)

DeleteMultiplexProgram removes a program from a Multiplex.

func (*InMemoryBackend) DeleteNetwork

func (b *InMemoryBackend) DeleteNetwork(networkID string) (*Network, error)

DeleteNetwork deletes a Network.

func (*InMemoryBackend) DeleteNode

func (b *InMemoryBackend) DeleteNode(clusterID, nodeID string) (*Node, error)

DeleteNode removes a Node from a Cluster.

func (*InMemoryBackend) DeleteReservation

func (b *InMemoryBackend) DeleteReservation(reservationID string) (*Reservation, error)

DeleteReservation cancels a reservation.

func (*InMemoryBackend) DeleteSchedule

func (b *InMemoryBackend) DeleteSchedule(channelID string) error

DeleteSchedule removes all schedule actions for a channel.

func (*InMemoryBackend) DeleteSdiSource

func (b *InMemoryBackend) DeleteSdiSource(sdiSourceID string) (*SdiSource, error)

DeleteSdiSource deletes an SDI source.

func (*InMemoryBackend) DeleteSignalMap

func (b *InMemoryBackend) DeleteSignalMap(identifier string) error

DeleteSignalMap deletes a signal map.

func (*InMemoryBackend) DeleteTags

func (b *InMemoryBackend) DeleteTags(resourceARN string, tagKeys []string) error

DeleteTags removes tag keys from a resource.

func (*InMemoryBackend) DescribeAccountConfiguration

func (b *InMemoryBackend) DescribeAccountConfiguration() (*AccountConfiguration, error)

DescribeAccountConfiguration returns the account-wide configuration.

func (*InMemoryBackend) DescribeChannel

func (b *InMemoryBackend) DescribeChannel(channelID string) (*Channel, error)

DescribeChannel returns a channel by ID.

func (*InMemoryBackend) DescribeChannelPlacementGroup

func (b *InMemoryBackend) DescribeChannelPlacementGroup(
	clusterID, groupID string,
) (*ChannelPlacementGroup, error)

DescribeChannelPlacementGroup returns a placement group by cluster and group ID.

func (*InMemoryBackend) DescribeCluster

func (b *InMemoryBackend) DescribeCluster(clusterID string) (*Cluster, error)

DescribeCluster returns a Cluster by ID.

func (*InMemoryBackend) DescribeInput

func (b *InMemoryBackend) DescribeInput(inputID string) (*Input, error)

DescribeInput returns an input by ID.

func (*InMemoryBackend) DescribeInputDevice

func (b *InMemoryBackend) DescribeInputDevice(deviceID string) (*InputDevice, error)

DescribeInputDevice returns an input device by ID.

func (*InMemoryBackend) DescribeInputDeviceThumbnail

func (b *InMemoryBackend) DescribeInputDeviceThumbnail(deviceID string) (*InputDevice, error)

DescribeInputDeviceThumbnail returns the device (thumbnail image data is not emulated).

func (*InMemoryBackend) DescribeInputSecurityGroup

func (b *InMemoryBackend) DescribeInputSecurityGroup(groupID string) (*InputSecurityGroup, error)

DescribeInputSecurityGroup returns an input security group by ID.

func (*InMemoryBackend) DescribeMultiplex

func (b *InMemoryBackend) DescribeMultiplex(multiplexID string) (*Multiplex, error)

DescribeMultiplex returns a Multiplex by ID.

func (*InMemoryBackend) DescribeMultiplexProgram

func (b *InMemoryBackend) DescribeMultiplexProgram(
	multiplexID, programName string,
) (*MultiplexProgram, error)

DescribeMultiplexProgram returns a program by multiplex ID and program name.

func (*InMemoryBackend) DescribeNetwork

func (b *InMemoryBackend) DescribeNetwork(networkID string) (*Network, error)

DescribeNetwork returns a Network by ID.

func (*InMemoryBackend) DescribeNode

func (b *InMemoryBackend) DescribeNode(clusterID, nodeID string) (*Node, error)

DescribeNode returns a Node by cluster ID and node ID.

func (*InMemoryBackend) DescribeOffering

func (b *InMemoryBackend) DescribeOffering(offeringID string) (*Offering, error)

DescribeOffering returns a single offering by ID.

func (*InMemoryBackend) DescribeReservation

func (b *InMemoryBackend) DescribeReservation(reservationID string) (*Reservation, error)

DescribeReservation returns a single reservation.

func (*InMemoryBackend) DescribeSchedule

func (b *InMemoryBackend) DescribeSchedule(channelID string) ([]ScheduleAction, error)

DescribeSchedule returns the schedule actions for a channel.

func (*InMemoryBackend) DescribeSdiSource

func (b *InMemoryBackend) DescribeSdiSource(sdiSourceID string) (*SdiSource, error)

DescribeSdiSource returns an SDI source by ID.

func (*InMemoryBackend) DescribeThumbnails

func (b *InMemoryBackend) DescribeThumbnails(channelID string) (*Channel, error)

DescribeThumbnails returns the channel (thumbnails are not emulated as image data).

func (*InMemoryBackend) GetCloudWatchAlarmTemplate

func (b *InMemoryBackend) GetCloudWatchAlarmTemplate(
	identifier string,
) (*CloudWatchAlarmTemplate, error)

GetCloudWatchAlarmTemplate returns a CW alarm template by identifier.

func (*InMemoryBackend) GetCloudWatchAlarmTemplateGroup

func (b *InMemoryBackend) GetCloudWatchAlarmTemplateGroup(
	identifier string,
) (*CloudWatchAlarmTemplateGroup, error)

GetCloudWatchAlarmTemplateGroup returns a CW alarm template group by identifier.

func (*InMemoryBackend) GetEventBridgeRuleTemplate

func (b *InMemoryBackend) GetEventBridgeRuleTemplate(
	identifier string,
) (*EventBridgeRuleTemplate, error)

GetEventBridgeRuleTemplate returns an EB rule template.

func (*InMemoryBackend) GetEventBridgeRuleTemplateGroup

func (b *InMemoryBackend) GetEventBridgeRuleTemplateGroup(
	identifier string,
) (*EventBridgeRuleTemplateGroup, error)

GetEventBridgeRuleTemplateGroup returns an EB rule template group.

func (*InMemoryBackend) GetSignalMap

func (b *InMemoryBackend) GetSignalMap(identifier string) (*SignalMap, error)

GetSignalMap returns a signal map by identifier.

func (*InMemoryBackend) ListAlerts

func (b *InMemoryBackend) ListAlerts(channelID string) ([]map[string]any, error)

ListAlerts returns alerts for a channel (always empty in emulation).

func (*InMemoryBackend) ListChannelPlacementGroups

func (b *InMemoryBackend) ListChannelPlacementGroups(
	clusterID string,
	maxResults int,
	nextToken string,
) ([]*ChannelPlacementGroup, string, error)

ListChannelPlacementGroups returns a paginated list of placement groups in a cluster.

func (*InMemoryBackend) ListChannels

func (b *InMemoryBackend) ListChannels(
	maxResults int,
	nextToken string,
) ([]*ChannelSummary, string, error)

ListChannels returns a paginated list of channels.

func (*InMemoryBackend) ListCloudWatchAlarmTemplateGroups

func (b *InMemoryBackend) ListCloudWatchAlarmTemplateGroups(
	maxResults int,
	nextToken string,
) ([]*CloudWatchAlarmTemplateGroupSummary, string, error)

ListCloudWatchAlarmTemplateGroups returns all CW alarm template groups, each annotated with its live templateCount (see CloudWatchAlarmTemplateGroupSummary's doc comment).

func (*InMemoryBackend) ListCloudWatchAlarmTemplates

func (b *InMemoryBackend) ListCloudWatchAlarmTemplates(
	maxResults int,
	nextToken string,
) ([]*CloudWatchAlarmTemplate, string, error)

ListCloudWatchAlarmTemplates returns all CW alarm templates.

func (*InMemoryBackend) ListClusterAlerts

func (b *InMemoryBackend) ListClusterAlerts(
	clusterID string,
	_ int,
	_ string,
) ([]map[string]any, string, error)

ListClusterAlerts returns alerts for a Cluster.

func (*InMemoryBackend) ListClusters

func (b *InMemoryBackend) ListClusters(
	maxResults int,
	nextToken string,
) ([]*ClusterSummary, string, error)

ListClusters returns a paginated list of Clusters.

func (*InMemoryBackend) ListEventBridgeRuleTemplateGroups

func (b *InMemoryBackend) ListEventBridgeRuleTemplateGroups(
	maxResults int,
	nextToken string,
) ([]*EventBridgeRuleTemplateGroupSummary, string, error)

ListEventBridgeRuleTemplateGroups returns all EB rule template groups, each annotated with its live templateCount (see EventBridgeRuleTemplateGroupSummary's doc comment).

func (*InMemoryBackend) ListEventBridgeRuleTemplates

func (b *InMemoryBackend) ListEventBridgeRuleTemplates(
	maxResults int,
	nextToken string,
) ([]*EventBridgeRuleTemplateSummary, string, error)

ListEventBridgeRuleTemplates returns all EB rule templates using the real List Summary shape (eventTargetCount, not the full eventTargets array -- see EventBridgeRuleTemplateSummary's doc comment).

func (*InMemoryBackend) ListInputDeviceTransfers

func (b *InMemoryBackend) ListInputDeviceTransfers(
	transferType string,
	maxResults int,
	nextToken string,
) ([]*InputDeviceTransfer, string, error)

ListInputDeviceTransfers lists devices with pending transfers. transferType must be "OUTGOING" or "INCOMING"; in this mock both resolve against the same pending-transfer store (we don't track the recipient side separately).

func (*InMemoryBackend) ListInputDevices

func (b *InMemoryBackend) ListInputDevices(
	maxResults int,
	nextToken string,
) ([]*InputDevice, string, error)

ListInputDevices returns a paginated list of input devices.

func (*InMemoryBackend) ListInputSecurityGroups

func (b *InMemoryBackend) ListInputSecurityGroups(
	maxResults int,
	nextToken string,
) ([]*InputSecurityGroupSummary, string, error)

ListInputSecurityGroups returns a paginated list of input security groups.

func (*InMemoryBackend) ListInputs

func (b *InMemoryBackend) ListInputs(
	maxResults int,
	nextToken string,
) ([]*InputSummary, string, error)

ListInputs returns a paginated list of inputs.

func (*InMemoryBackend) ListMultiplexAlerts

func (b *InMemoryBackend) ListMultiplexAlerts(multiplexID string) ([]map[string]any, error)

ListMultiplexAlerts returns alerts for a multiplex (always empty in emulation).

func (*InMemoryBackend) ListMultiplexPrograms

func (b *InMemoryBackend) ListMultiplexPrograms(
	multiplexID string,
	maxResults int,
	nextToken string,
) ([]*MultiplexProgramSummary, string, error)

ListMultiplexPrograms returns a paginated list of programs for a Multiplex.

func (*InMemoryBackend) ListMultiplexes

func (b *InMemoryBackend) ListMultiplexes(
	maxResults int,
	nextToken string,
) ([]*MultiplexSummary, string, error)

ListMultiplexes returns a paginated list of multiplexes.

func (*InMemoryBackend) ListNetworks

func (b *InMemoryBackend) ListNetworks(
	maxResults int,
	nextToken string,
) ([]*Network, string, error)

ListNetworks returns a paginated list of Networks.

func (*InMemoryBackend) ListNodes

func (b *InMemoryBackend) ListNodes(
	clusterID string,
	maxResults int,
	nextToken string,
) ([]*NodeSummary, string, error)

ListNodes returns a paginated list of Nodes in a Cluster.

func (*InMemoryBackend) ListOfferings

func (b *InMemoryBackend) ListOfferings(
	maxResults int,
	nextToken string,
) ([]*Offering, string, error)

ListOfferings returns the seeded offering catalog.

func (*InMemoryBackend) ListReservations

func (b *InMemoryBackend) ListReservations(
	maxResults int,
	nextToken string,
) ([]*Reservation, string, error)

ListReservations returns all reservations.

func (*InMemoryBackend) ListSdiSources

func (b *InMemoryBackend) ListSdiSources(
	maxResults int,
	nextToken string,
) ([]*SdiSource, string, error)

ListSdiSources returns a paginated list of SDI sources.

func (*InMemoryBackend) ListSignalMaps

func (b *InMemoryBackend) ListSignalMaps(
	maxResults int,
	nextToken string,
) ([]*SignalMap, string, error)

ListSignalMaps returns all signal maps.

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(resourceARN string) (map[string]string, error)

ListTagsForResource returns all tags for a resource.

func (*InMemoryBackend) ListVersions

func (b *InMemoryBackend) ListVersions() []ChannelEngineVersion

ListVersions returns the available channel engine versions.

func (*InMemoryBackend) PurchaseOffering

func (b *InMemoryBackend) PurchaseOffering(
	offeringID, name string,
	count int32,
	renewalSettings RenewalSettings,
	tags map[string]string,
) (*Reservation, error)

PurchaseOffering creates a Reservation from an Offering.

func (*InMemoryBackend) RebootInputDevice

func (b *InMemoryBackend) RebootInputDevice(deviceID string) error

RebootInputDevice initiates a reboot of the device (no-op in emulation).

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the configured region.

func (*InMemoryBackend) RejectInputDeviceTransfer

func (b *InMemoryBackend) RejectInputDeviceTransfer(deviceID string) error

RejectInputDeviceTransfer rejects an incoming transfer.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all stored data.

func (*InMemoryBackend) RestartChannelPipelines

func (b *InMemoryBackend) RestartChannelPipelines(
	channelID string,
	_ []string,
) (*Channel, error)

RestartChannelPipelines restarts a channel's pipelines (returns the channel).

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore deserializes state from JSON.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serializes current state to JSON.

func (*InMemoryBackend) StartChannel

func (b *InMemoryBackend) StartChannel(channelID string) (*Channel, error)

StartChannel transitions a channel toward RUNNING. The stored state advances immediately to RUNNING (deterministic emulation), but the API response carries STARTING to match the real AWS intermediate-state contract.

func (*InMemoryBackend) StartDeleteMonitorDeployment

func (b *InMemoryBackend) StartDeleteMonitorDeployment(identifier string) (*SignalMap, error)

StartDeleteMonitorDeployment tears down the monitor deployment for a signal map.

func (*InMemoryBackend) StartInputDevice

func (b *InMemoryBackend) StartInputDevice(deviceID string) error

StartInputDevice starts an input device (no-op aside from existence check).

func (*InMemoryBackend) StartInputDeviceMaintenanceWindow

func (b *InMemoryBackend) StartInputDeviceMaintenanceWindow(deviceID string) error

StartInputDeviceMaintenanceWindow opens a maintenance window for the device.

func (*InMemoryBackend) StartMonitorDeployment

func (b *InMemoryBackend) StartMonitorDeployment(identifier string) (*SignalMap, error)

StartMonitorDeployment deploys monitoring for a signal map.

func (*InMemoryBackend) StartMultiplex

func (b *InMemoryBackend) StartMultiplex(multiplexID string) (*Multiplex, error)

StartMultiplex transitions a Multiplex toward RUNNING. Stored state advances immediately; response carries STARTING per AWS contract.

func (*InMemoryBackend) StartUpdateSignalMap

func (b *InMemoryBackend) StartUpdateSignalMap(
	identifier, name, description string,
	cwGroupIDs, ebGroupIDs []string,
) (*SignalMap, error)

StartUpdateSignalMap updates a signal map's configuration.

func (*InMemoryBackend) StopChannel

func (b *InMemoryBackend) StopChannel(channelID string) (*Channel, error)

StopChannel transitions a channel toward IDLE. The stored state advances immediately to IDLE (deterministic emulation), but the API response carries STOPPING to match the real AWS intermediate-state contract.

func (*InMemoryBackend) StopInputDevice

func (b *InMemoryBackend) StopInputDevice(deviceID string) error

StopInputDevice stops an input device (no-op aside from existence check).

func (*InMemoryBackend) StopMultiplex

func (b *InMemoryBackend) StopMultiplex(multiplexID string) (*Multiplex, error)

StopMultiplex transitions a Multiplex toward IDLE. Stored state advances immediately; response carries STOPPING per AWS contract.

func (*InMemoryBackend) TransferInputDevice

func (b *InMemoryBackend) TransferInputDevice(
	deviceID, targetCustomerID, targetRegion, message string,
) error

TransferInputDevice initiates a transfer of the device to another account.

func (*InMemoryBackend) UpdateAccountConfiguration

func (b *InMemoryBackend) UpdateAccountConfiguration(
	kmsKeyID string,
) (*AccountConfiguration, error)

UpdateAccountConfiguration updates the account-wide configuration.

func (*InMemoryBackend) UpdateChannel

func (b *InMemoryBackend) UpdateChannel(
	channelID, name, roleArn string,
	anywhereSettings ChannelAnywhereSettings,
	hasAnywhereSettings bool,
	extras ChannelUpdateExtras,
) (*Channel, error)

UpdateChannel updates a channel's mutable fields.

func (*InMemoryBackend) UpdateChannelClass

func (b *InMemoryBackend) UpdateChannelClass(channelID, channelClass string) (*Channel, error)

UpdateChannelClass changes a channel's class.

func (*InMemoryBackend) UpdateChannelPlacementGroup

func (b *InMemoryBackend) UpdateChannelPlacementGroup(
	clusterID, groupID, name string,
	nodes []string,
) (*ChannelPlacementGroup, error)

UpdateChannelPlacementGroup updates a placement group's mutable fields.

func (*InMemoryBackend) UpdateCloudWatchAlarmTemplate

func (b *InMemoryBackend) UpdateCloudWatchAlarmTemplate(
	identifier string,
	name string,
	description string,
	groupIdentifier string,
	metricName string,
	namespace string,
	statistic string,
	comparisonOperator string,
	targetResourceType string,
	treatMissingData string,
	threshold float64,
	evaluationPeriods, datapointsToAlarm, period int32,
) (*CloudWatchAlarmTemplate, error)

UpdateCloudWatchAlarmTemplate updates a CW alarm template.

func (*InMemoryBackend) UpdateCloudWatchAlarmTemplateGroup

func (b *InMemoryBackend) UpdateCloudWatchAlarmTemplateGroup(
	identifier, name, description string,
) (*CloudWatchAlarmTemplateGroup, error)

UpdateCloudWatchAlarmTemplateGroup updates a CW alarm template group.

func (*InMemoryBackend) UpdateCluster

func (b *InMemoryBackend) UpdateCluster(
	clusterID, name string,
	networkSettings ClusterNetworkSettings,
	hasNetworkSettings bool,
) (*Cluster, error)

UpdateCluster updates a Cluster's mutable fields. A zero-value networkSettings leaves the stored NetworkSettings untouched (mirrors UpdateClusterInput's "include this parameter only if you want to change it" semantics for NetworkSettings).

func (*InMemoryBackend) UpdateEventBridgeRuleTemplate

func (b *InMemoryBackend) UpdateEventBridgeRuleTemplate(
	identifier, name, description, groupIdentifier, eventType string,
	eventTargets []EventBridgeRuleTemplateTarget,
) (*EventBridgeRuleTemplate, error)

UpdateEventBridgeRuleTemplate updates an EB rule template.

func (*InMemoryBackend) UpdateEventBridgeRuleTemplateGroup

func (b *InMemoryBackend) UpdateEventBridgeRuleTemplateGroup(
	identifier, name, description string,
) (*EventBridgeRuleTemplateGroup, error)

UpdateEventBridgeRuleTemplateGroup updates an EB rule template group.

func (*InMemoryBackend) UpdateInput

func (b *InMemoryBackend) UpdateInput(inputID, name, roleArn string) (*Input, error)

UpdateInput updates an input's mutable fields.

func (*InMemoryBackend) UpdateInputDevice

func (b *InMemoryBackend) UpdateInputDevice(deviceID, name string) (*InputDevice, error)

UpdateInputDevice updates the name of an input device.

func (*InMemoryBackend) UpdateInputSecurityGroup

func (b *InMemoryBackend) UpdateInputSecurityGroup(
	groupID string,
	whitelistRules []WhitelistRule,
) (*InputSecurityGroup, error)

UpdateInputSecurityGroup updates an input security group's whitelist rules.

func (*InMemoryBackend) UpdateMultiplex

func (b *InMemoryBackend) UpdateMultiplex(
	multiplexID, name string,
	settings MultiplexSettings,
) (*Multiplex, error)

UpdateMultiplex updates a Multiplex's mutable fields.

func (*InMemoryBackend) UpdateMultiplexProgram

func (b *InMemoryBackend) UpdateMultiplexProgram(
	multiplexID string,
	prog MultiplexProgramSettings,
) (*MultiplexProgram, error)

UpdateMultiplexProgram updates a program's settings.

func (*InMemoryBackend) UpdateNetwork

func (b *InMemoryBackend) UpdateNetwork(
	networkID, name string,
	ipPools []IPPool,
	routes []Route,
) (*Network, error)

UpdateNetwork updates a Network's mutable fields.

func (*InMemoryBackend) UpdateNode

func (b *InMemoryBackend) UpdateNode(clusterID, nodeID, name, role string) (*Node, error)

UpdateNode updates a Node's mutable fields.

func (*InMemoryBackend) UpdateNodeState

func (b *InMemoryBackend) UpdateNodeState(clusterID, nodeID, state string) (*Node, error)

UpdateNodeState updates the state of a Node.

func (*InMemoryBackend) UpdateReservation

func (b *InMemoryBackend) UpdateReservation(
	reservationID, name string,
	renewalSettings RenewalSettings,
	hasRenewalSettings bool,
) (*Reservation, error)

UpdateReservation updates a reservation's name and, optionally, its renewal settings.

func (*InMemoryBackend) UpdateSdiSource

func (b *InMemoryBackend) UpdateSdiSource(
	sdiSourceID, name, sdiType, mode string,
) (*SdiSource, error)

UpdateSdiSource updates an SDI source's mutable fields.

type Input

type Input struct {
	Tags      map[string]string
	ARN       string
	ID        string
	Name      string
	InputType string
	RoleARN   string
	State     string
}

Input represents a MediaLive input. Tags first: reduces GC pointer scan from 104 to 96 bytes.

type InputDevice

type InputDevice struct {
	Tags                    map[string]string
	ARN                     string
	ID                      string
	Name                    string
	SerialNumber            string
	MacAddress              string
	DeviceType              string
	ConnectionState         string
	DeviceSettingsSyncState string
	DeviceUpdateStatus      string
	MaintenanceWindowActive bool
}

InputDevice represents a MediaLive input device.

type InputDeviceTransfer

type InputDeviceTransfer struct {
	DeviceID         string
	TargetCustomerID string
	TransferType     string
	Message          string
}

InputDeviceTransfer represents a pending input device transfer.

type InputLocation added in v1.2.0

type InputLocation struct {
	URI           string
	PasswordParam string
	Username      string
}

InputLocation is a URI plus optional Parameter-Store-backed credentials, reused by several EncoderSettings sub-shapes (avail/blackout slate images, input-loss slate). Wire keys "uri"/"passwordParam"/"username" -- verified against types.InputLocation.

type InputLossBehavior added in v1.2.0

type InputLossBehavior struct {
	InputLossImageSlate InputLocation
	InputLossImageColor string
	InputLossImageType  string
	BlackFrameMsec      int32
	RepeatFrameMsec     int32
}

InputLossBehavior configures encoder behavior when the input signal is lost. Wire keys "blackFrameMsec"/"inputLossImageColor"/ "inputLossImageSlate"/"inputLossImageType"/"repeatFrameMsec" -- verified against types.InputLossBehavior.

type InputLossFailoverSettings added in v1.2.0

type InputLossFailoverSettings struct {
	InputLossThresholdMsec int32
}

InputLossFailoverSettings triggers failover after a period with no input detected.

type InputSecurityGroup

type InputSecurityGroup struct {
	Tags           map[string]string
	ARN            string
	ID             string
	State          string
	WhitelistRules []WhitelistRule
}

InputSecurityGroup represents a MediaLive input security group. Tags first, then strings, then slice: reduces GC pointer scan from 80 to 64 bytes.

type InputSecurityGroupSummary

type InputSecurityGroupSummary struct {
	ARN            string
	ID             string
	State          string
	WhitelistRules []WhitelistRule
}

InputSecurityGroupSummary is a security group in a list response.

type InputSpecification added in v1.2.0

type InputSpecification struct {
	Codec          string
	MaximumBitrate string
	Resolution     string
}

InputSpecification describes the class of network/file inputs a channel expects. Wire keys "inputSpecification.codec/maximumBitrate/resolution" -- verified against types.InputSpecification.

type InputSummary

type InputSummary struct {
	ARN       string
	ID        string
	Name      string
	InputType string
	State     string
}

InputSummary is an input in a list response.

type InterfaceMapping added in v1.2.0

type InterfaceMapping struct {
	LogicalInterfaceName string
	NetworkID            string
}

InterfaceMapping logically connects one interface on every Node in a Cluster with one Network. Wire keys (networkSettings.interfaceMappings[]) are lowerCamel "logicalInterfaceName"/"networkId" -- verified against aws-sdk-go-v2/service/medialive's types.InterfaceMapping.

type MediaConnectRouterDestinationSettings added in v1.2.0

type MediaConnectRouterDestinationSettings struct {
	EncryptionType string
	SecretArn      string
}

MediaConnectRouterDestinationSettings targets a MediaConnect Router output. Wire keys "encryptionType"/"secretArn" -- verified against types.MediaConnectRouterOutputDestinationSettings.

type MediaPackageDestinationSettings added in v1.2.0

type MediaPackageDestinationSettings struct {
	ChannelEndpointID      string
	ChannelGroup           string
	ChannelID              string
	ChannelName            string
	MediaPackageRegionName string
}

MediaPackageDestinationSettings targets a MediaPackage channel. Wire keys "channelEndpointId"/"channelGroup"/"channelId"/"channelName"/ "mediaPackageRegionName" -- verified against types.MediaPackageOutputDestinationSettings.

type Multiplex

type Multiplex struct {
	Tags              map[string]string
	ARN               string
	ID                string
	Name              string
	State             string
	AvailabilityZones []string
	Settings          MultiplexSettings
	ProgramCount      int
}

Multiplex represents a MediaLive Multiplex resource. Tags first, value struct last: reduces GC pointer scan.

type MultiplexDestinationSettings added in v1.2.0

type MultiplexDestinationSettings struct {
	MultiplexID string
	ProgramName string
}

MultiplexDestinationSettings targets a Multiplex program. Wire keys "multiplexId"/"programName" -- verified against types.MultiplexProgramChannelDestinationSettings.

type MultiplexProgram

type MultiplexProgram struct {
	ChannelID   string
	ProgramName string
	Settings    MultiplexProgramSettings
}

MultiplexProgram represents a program within a Multiplex. Strings first, value struct last: reduces GC pointer scan.

type MultiplexProgramSettings

type MultiplexProgramSettings struct {
	ServiceDescriptor        ServiceDescriptor
	ProgramName              string
	PreferredChannelPipeline string
	ProgramNumber            int
}

MultiplexProgramSettings holds the settings for a MultiplexProgram.

type MultiplexProgramSummary

type MultiplexProgramSummary struct {
	ProgramName string
	ChannelID   string
}

MultiplexProgramSummary is a program in a list response.

type MultiplexSettings

type MultiplexSettings struct {
	TransportStreamBitrate              int
	TransportStreamID                   int
	TransportStreamReservedBitrate      int
	MaximumVideoBufferDelayMilliseconds int
}

MultiplexSettings holds transport-stream parameters for a Multiplex.

type MultiplexSummary

type MultiplexSummary struct {
	ARN               string
	ID                string
	Name              string
	State             string
	AvailabilityZones []string
	ProgramCount      int
}

MultiplexSummary is a Multiplex in a list response.

type Network

type Network struct {
	Tags                 map[string]string
	ARN                  string
	ID                   string
	Name                 string
	State                string
	AssociatedClusterIDs []string
	IPPools              []IPPool
	Routes               []Route
}

Network represents a MediaLive Anywhere network resource.

type Node

type Node struct {
	Tags                   map[string]string
	ARN                    string
	ID                     string
	Name                   string
	ClusterID              string
	Role                   string
	State                  string
	ConnectionState        string
	ChannelPlacementGroups []string
}

Node represents a MediaLive Anywhere Node within a Cluster. Tags first: reduces GC pointer scan.

type NodeSummary

type NodeSummary struct {
	ARN                    string
	ID                     string
	Name                   string
	ClusterID              string
	Role                   string
	State                  string
	ConnectionState        string
	ChannelPlacementGroups []string
}

NodeSummary is a Node in a list response.

type Offering

type Offering struct {
	ResourceSpecification OfferingResourceSpecification
	Arn                   string
	OfferingID            string
	OfferingDescription   string
	OfferingType          string
	CurrencyCode          string
	DurationUnits         string
	Region                string
	FixedPrice            float64
	UsagePrice            float64
	Duration              int32
}

Offering is a pre-defined reserved resource listing from the MediaLive catalog.

type OfferingResourceSpecification

type OfferingResourceSpecification struct {
	ResourceType     string `json:"resourceType"`
	VideoQuality     string `json:"videoQuality"`
	Resolution       string `json:"resolution"`
	SpecialFeature   string `json:"specialFeature"`
	MaximumBitrate   string `json:"maximumBitrate"`
	MaximumFramerate string `json:"maximumFramerate"`
	Codec            string `json:"codec"`
}

OfferingResourceSpecification describes the resource type for an offering.

type OutputDestinationSetting added in v1.2.0

type OutputDestinationSetting struct {
	PasswordParam string
	StreamName    string
	URL           string
	Username      string
}

OutputDestinationSetting is one standard-output destination endpoint (RTMP/etc). Wire keys "passwordParam"/"streamName"/"url"/"username" -- verified against types.OutputDestinationSettings.

type OutputGroup added in v1.2.0

type OutputGroup struct {
	Name    string
	Outputs []EncoderOutput
}

OutputGroup names one output group and its member Outputs. Wire keys "name"/"outputs" -- verified against types.OutputGroup. OutputGroupSettings (the ~13-variant per-technology union: Archive/CmafIngest/FrameCapture/Hls/ MediaConnectRouter/MediaPackage/MsSmooth/Multiplex/Rtmp/Srt/ UdpGroupSettings, each itself dozens of fields) is deliberately NOT modeled; see PARITY.md's gaps entry.

type OutputLockingSettings added in v1.2.0

type OutputLockingSettings struct {
	Disabled *DisabledLockingSettings
	Epoch    *EpochLockingSettings
	Pipeline *PipelineLockingSettings
}

OutputLockingSettings is the tagged union of pipeline-locking strategies (types.OutputLockingSettings); at most one variant is set.

type PipelineLockingSettings added in v1.2.0

type PipelineLockingSettings struct {
	CustomEpoch           string
	PipelineLockingMethod string
}

PipelineLockingSettings locks pipeline output to each other.

type Provider

type Provider struct{}

Provider implements service.Provider for the MediaLive service.

func (*Provider) Init

Init initializes the MediaLive backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the logical name of the provider.

type RenewalSettings added in v1.2.0

type RenewalSettings struct {
	AutomaticRenewal string
	RenewalCount     int32
}

RenewalSettings holds a Reservation's renewal configuration. Wire keys (renewalSettings.automaticRenewal/renewalCount) verified against aws-sdk-go-v2/service/medialive's awsRestjson1_serializeDocumentRenewalSettings.

type Reservation

type Reservation struct {
	Tags                  map[string]string
	ResourceSpecification OfferingResourceSpecification
	OfferingType          string
	End                   string
	Start                 string
	Name                  string
	OfferingID            string
	OfferingDescription   string
	DurationUnits         string
	Arn                   string
	ReservationID         string
	CurrencyCode          string
	Region                string
	State                 string
	RenewalSettings       RenewalSettings
	UsagePrice            float64
	FixedPrice            float64
	Duration              int32
	Count                 int32
}

Reservation is a purchased Offering.

type Route

type Route struct {
	Cidr    string `json:"cidr"`
	Gateway string `json:"gateway"`
}

Route is a static route for a Network.

type ScheduleAction

type ScheduleAction struct {
	ActionName string
	ActionType string
}

ScheduleAction represents a single schedule action for BatchUpdateSchedule.

type SdiSource

type SdiSource struct {
	ARN    string
	ID     string
	Name   string
	Type   string
	Mode   string
	State  string
	Inputs []string
}

SdiSource represents a MediaLive SDI source resource.

type ServiceDescriptor

type ServiceDescriptor struct {
	ProviderName string
	ServiceName  string
}

ServiceDescriptor holds provider/service name for a program.

type SignalMap

type SignalMap struct {
	CreatedAt                       time.Time
	ModifiedAt                      time.Time
	Tags                            map[string]string
	Arn                             string
	ID                              string
	Name                            string
	Description                     string
	DiscoveryEntryPointArn          string
	Status                          string
	MonitorDeploymentStatus         string
	CloudWatchAlarmTemplateGroupIDs []string
	EventBridgeRuleTemplateGroupIDs []string
}

SignalMap represents a MediaLive signal map resource.

type SrtDestinationSettings added in v1.2.0

type SrtDestinationSettings struct {
	ConnectionMode                string
	EncryptionPassphraseSecretArn string
	StreamID                      string
	URL                           string
	ListenerPort                  int32
}

SrtDestinationSettings targets an SRT output. Wire keys "connectionMode"/"encryptionPassphraseSecretArn"/"listenerPort"/ "streamId"/"url" -- verified against types.SrtOutputDestinationSettings.

type StorageBackend

type StorageBackend interface {
	// Channels
	CreateChannel(
		name, channelClass, roleArn string,
		anywhereSettings ChannelAnywhereSettings,
		extras ChannelCreateExtras,
		tags map[string]string,
	) (*Channel, error)
	DescribeChannel(channelID string) (*Channel, error)
	UpdateChannel(
		channelID, name, roleArn string,
		anywhereSettings ChannelAnywhereSettings,
		hasAnywhereSettings bool,
		extras ChannelUpdateExtras,
	) (*Channel, error)
	DeleteChannel(channelID string) (*Channel, error)
	ListChannels(maxResults int, nextToken string) ([]*ChannelSummary, string, error)
	StartChannel(channelID string) (*Channel, error)
	StopChannel(channelID string) (*Channel, error)

	// Inputs
	CreateInput(name, inputType, roleArn string, tags map[string]string) (*Input, error)
	DescribeInput(inputID string) (*Input, error)
	UpdateInput(inputID, name, roleArn string) (*Input, error)
	DeleteInput(inputID string) error
	ListInputs(maxResults int, nextToken string) ([]*InputSummary, string, error)

	// InputSecurityGroups
	CreateInputSecurityGroup(
		whitelistRules []WhitelistRule,
		tags map[string]string,
	) (*InputSecurityGroup, error)
	DescribeInputSecurityGroup(groupID string) (*InputSecurityGroup, error)
	UpdateInputSecurityGroup(
		groupID string,
		whitelistRules []WhitelistRule,
	) (*InputSecurityGroup, error)
	DeleteInputSecurityGroup(groupID string) error
	ListInputSecurityGroups(
		maxResults int,
		nextToken string,
	) ([]*InputSecurityGroupSummary, string, error)

	// Multiplexes
	CreateMultiplex(
		name string,
		availabilityZones []string,
		settings MultiplexSettings,
		tags map[string]string,
	) (*Multiplex, error)
	DescribeMultiplex(multiplexID string) (*Multiplex, error)
	UpdateMultiplex(multiplexID, name string, settings MultiplexSettings) (*Multiplex, error)
	DeleteMultiplex(multiplexID string) (*Multiplex, error)
	ListMultiplexes(maxResults int, nextToken string) ([]*MultiplexSummary, string, error)
	StartMultiplex(multiplexID string) (*Multiplex, error)
	StopMultiplex(multiplexID string) (*Multiplex, error)

	// MultiplexPrograms
	CreateMultiplexProgram(
		multiplexID string,
		prog MultiplexProgramSettings,
	) (*MultiplexProgram, error)
	DescribeMultiplexProgram(multiplexID, programName string) (*MultiplexProgram, error)
	UpdateMultiplexProgram(
		multiplexID string,
		prog MultiplexProgramSettings,
	) (*MultiplexProgram, error)
	DeleteMultiplexProgram(multiplexID, programName string) (*MultiplexProgram, error)
	ListMultiplexPrograms(
		multiplexID string,
		maxResults int,
		nextToken string,
	) ([]*MultiplexProgramSummary, string, error)

	// Tags
	CreateTags(resourceARN string, tags map[string]string) error
	DeleteTags(resourceARN string, tagKeys []string) error
	ListTagsForResource(resourceARN string) (map[string]string, error)

	// InputDevices
	ClaimDevice(id string) (*InputDevice, error)
	ListInputDevices(maxResults int, nextToken string) ([]*InputDevice, string, error)
	DescribeInputDevice(deviceID string) (*InputDevice, error)
	UpdateInputDevice(deviceID, name string) (*InputDevice, error)
	RebootInputDevice(deviceID string) error
	TransferInputDevice(deviceID, targetCustomerID, targetRegion, message string) error
	AcceptInputDeviceTransfer(deviceID string) error
	CancelInputDeviceTransfer(deviceID string) error
	RejectInputDeviceTransfer(deviceID string) error
	ListInputDeviceTransfers(
		transferType string,
		maxResults int,
		nextToken string,
	) ([]*InputDeviceTransfer, string, error)

	// Clusters
	CreateCluster(
		name, clusterType, instanceRoleArn string,
		networkSettings ClusterNetworkSettings,
		tags map[string]string,
	) (*Cluster, error)
	DescribeCluster(clusterID string) (*Cluster, error)
	UpdateCluster(
		clusterID, name string,
		networkSettings ClusterNetworkSettings,
		hasNetworkSettings bool,
	) (*Cluster, error)
	DeleteCluster(clusterID string) (*Cluster, error)
	ListClusters(maxResults int, nextToken string) ([]*ClusterSummary, string, error)

	// Nodes
	CreateNode(clusterID, name, role string, tags map[string]string) (*Node, error)
	DescribeNode(clusterID, nodeID string) (*Node, error)
	UpdateNode(clusterID, nodeID, name, role string) (*Node, error)
	UpdateNodeState(clusterID, nodeID, state string) (*Node, error)
	DeleteNode(clusterID, nodeID string) (*Node, error)
	ListNodes(clusterID string, maxResults int, nextToken string) ([]*NodeSummary, string, error)
	CreateNodeRegistrationScript(clusterID string) (string, error)
	ListClusterAlerts(
		clusterID string,
		maxResults int,
		nextToken string,
	) ([]map[string]any, string, error)

	// SignalMaps
	CreateSignalMap(
		name, description, discoveryEntryPointArn string,
		cwGroupIDs, ebGroupIDs []string,
		tags map[string]string,
	) (*SignalMap, error)
	GetSignalMap(identifier string) (*SignalMap, error)
	ListSignalMaps(maxResults int, nextToken string) ([]*SignalMap, string, error)
	DeleteSignalMap(identifier string) error
	StartUpdateSignalMap(
		identifier, name, description string,
		cwGroupIDs, ebGroupIDs []string,
	) (*SignalMap, error)
	StartMonitorDeployment(identifier string) (*SignalMap, error)

	// CloudWatch Alarm Template Groups
	CreateCloudWatchAlarmTemplateGroup(
		name, description string,
		tags map[string]string,
	) (*CloudWatchAlarmTemplateGroup, error)
	GetCloudWatchAlarmTemplateGroup(identifier string) (*CloudWatchAlarmTemplateGroup, error)
	ListCloudWatchAlarmTemplateGroups(
		maxResults int,
		nextToken string,
	) ([]*CloudWatchAlarmTemplateGroupSummary, string, error)
	UpdateCloudWatchAlarmTemplateGroup(
		identifier, name, description string,
	) (*CloudWatchAlarmTemplateGroup, error)
	DeleteCloudWatchAlarmTemplateGroup(identifier string) error

	// CloudWatch Alarm Templates
	CreateCloudWatchAlarmTemplate(
		name string,
		description string,
		groupIdentifier string,
		metricName string,
		namespace string,
		statistic string,
		comparisonOperator string,
		targetResourceType string,
		treatMissingData string,
		threshold float64,
		evaluationPeriods, datapointsToAlarm, period int32,
		tags map[string]string,
	) (*CloudWatchAlarmTemplate, error)
	GetCloudWatchAlarmTemplate(identifier string) (*CloudWatchAlarmTemplate, error)
	ListCloudWatchAlarmTemplates(
		maxResults int,
		nextToken string,
	) ([]*CloudWatchAlarmTemplate, string, error)
	UpdateCloudWatchAlarmTemplate(
		identifier string,
		name string,
		description string,
		groupIdentifier string,
		metricName string,
		namespace string,
		statistic string,
		comparisonOperator string,
		targetResourceType string,
		treatMissingData string,
		threshold float64,
		evaluationPeriods, datapointsToAlarm, period int32,
	) (*CloudWatchAlarmTemplate, error)
	DeleteCloudWatchAlarmTemplate(identifier string) error

	// EventBridge Rule Template Groups
	CreateEventBridgeRuleTemplateGroup(
		name, description string,
		tags map[string]string,
	) (*EventBridgeRuleTemplateGroup, error)
	GetEventBridgeRuleTemplateGroup(identifier string) (*EventBridgeRuleTemplateGroup, error)
	ListEventBridgeRuleTemplateGroups(
		maxResults int,
		nextToken string,
	) ([]*EventBridgeRuleTemplateGroupSummary, string, error)
	UpdateEventBridgeRuleTemplateGroup(
		identifier, name, description string,
	) (*EventBridgeRuleTemplateGroup, error)
	DeleteEventBridgeRuleTemplateGroup(identifier string) error

	// EventBridge Rule Templates
	CreateEventBridgeRuleTemplate(
		name, description, groupIdentifier, eventType string,
		eventTargets []EventBridgeRuleTemplateTarget,
		tags map[string]string,
	) (*EventBridgeRuleTemplate, error)
	GetEventBridgeRuleTemplate(identifier string) (*EventBridgeRuleTemplate, error)
	ListEventBridgeRuleTemplates(
		maxResults int,
		nextToken string,
	) ([]*EventBridgeRuleTemplateSummary, string, error)
	UpdateEventBridgeRuleTemplate(
		identifier, name, description, groupIdentifier, eventType string,
		eventTargets []EventBridgeRuleTemplateTarget,
	) (*EventBridgeRuleTemplate, error)
	DeleteEventBridgeRuleTemplate(identifier string) error

	// Offerings (read-only catalog)
	ListOfferings(maxResults int, nextToken string) ([]*Offering, string, error)
	DescribeOffering(offeringID string) (*Offering, error)

	// Reservations
	PurchaseOffering(
		offeringID, name string,
		count int32,
		renewalSettings RenewalSettings,
		tags map[string]string,
	) (*Reservation, error)
	ListReservations(maxResults int, nextToken string) ([]*Reservation, string, error)
	DescribeReservation(reservationID string) (*Reservation, error)
	DeleteReservation(reservationID string) (*Reservation, error)
	UpdateReservation(
		reservationID, name string,
		renewalSettings RenewalSettings,
		hasRenewalSettings bool,
	) (*Reservation, error)

	// Batch ops
	// BatchStart/BatchStop take only channel and multiplex IDs -- the real
	// BatchStartInput/BatchStopInput shapes have NO inputIds field (verified
	// against aws-sdk-go-v2/service/medialive's api_op_BatchStart.go /
	// api_op_BatchStop.go; only ChannelIds+MultiplexIds).
	BatchStart(channelIDs, multiplexIDs []string) (*BatchResult, error)
	BatchStop(channelIDs, multiplexIDs []string) (*BatchResult, error)
	// BatchDelete takes channel, input, multiplex, AND input-security-group
	// IDs -- BatchDeleteInput is the one Batch* shape with all four fields.
	BatchDelete(channelIDs, inputIDs, multiplexIDs, inputSecurityGroupIDs []string) (*BatchResult, error)
	BatchUpdateSchedule(
		channelID string,
		creates []ScheduleAction,
		deleteActionNames []string,
	) (*BatchUpdateScheduleResult, error)

	// Networks
	CreateNetwork(
		name string,
		ipPools []IPPool,
		routes []Route,
		tags map[string]string,
	) (*Network, error)
	DescribeNetwork(networkID string) (*Network, error)
	UpdateNetwork(networkID, name string, ipPools []IPPool, routes []Route) (*Network, error)
	DeleteNetwork(networkID string) (*Network, error)
	ListNetworks(maxResults int, nextToken string) ([]*Network, string, error)

	// SdiSources
	CreateSdiSource(name, sdiType, mode string, tags map[string]string) (*SdiSource, error)
	DescribeSdiSource(sdiSourceID string) (*SdiSource, error)
	UpdateSdiSource(sdiSourceID, name, sdiType, mode string) (*SdiSource, error)
	DeleteSdiSource(sdiSourceID string) (*SdiSource, error)
	ListSdiSources(maxResults int, nextToken string) ([]*SdiSource, string, error)

	// ChannelPlacementGroups (nested under a cluster)
	CreateChannelPlacementGroup(
		clusterID, name string,
		nodes []string,
		tags map[string]string,
	) (*ChannelPlacementGroup, error)
	DescribeChannelPlacementGroup(clusterID, groupID string) (*ChannelPlacementGroup, error)
	UpdateChannelPlacementGroup(
		clusterID, groupID, name string,
		nodes []string,
	) (*ChannelPlacementGroup, error)
	DeleteChannelPlacementGroup(clusterID, groupID string) (*ChannelPlacementGroup, error)
	ListChannelPlacementGroups(
		clusterID string,
		maxResults int,
		nextToken string,
	) ([]*ChannelPlacementGroup, string, error)

	// Account configuration
	DescribeAccountConfiguration() (*AccountConfiguration, error)
	UpdateAccountConfiguration(kmsKeyID string) (*AccountConfiguration, error)

	// Schedule
	DescribeSchedule(channelID string) ([]ScheduleAction, error)
	DeleteSchedule(channelID string) error

	// Alerts and versions
	ListAlerts(channelID string) ([]map[string]any, error)
	ListMultiplexAlerts(multiplexID string) ([]map[string]any, error)
	ListVersions() []ChannelEngineVersion

	// Channel lifecycle extras
	UpdateChannelClass(channelID, channelClass string) (*Channel, error)
	RestartChannelPipelines(channelID string, pipelineIDs []string) (*Channel, error)
	DescribeThumbnails(channelID string) (*Channel, error)

	// InputDevice lifecycle extras
	StartInputDevice(deviceID string) error
	StopInputDevice(deviceID string) error
	StartInputDeviceMaintenanceWindow(deviceID string) error
	DescribeInputDeviceThumbnail(deviceID string) (*InputDevice, error)

	// SignalMap monitor deployment teardown
	StartDeleteMonitorDeployment(identifier string) (*SignalMap, error)

	// Partner inputs
	CreatePartnerInput(inputID string, tags map[string]string) (*Input, error)

	AccountID() string
	Region() string
	Reset()
	Snapshot(ctx context.Context) []byte
	Restore(ctx context.Context, data []byte) error
}

StorageBackend is the interface for MediaLive storage operations.

type ThumbnailConfiguration added in v1.2.0

type ThumbnailConfiguration struct {
	State string
}

ThumbnailConfiguration enables/disables per-pipeline thumbnail generation. Wire key "state" -- verified against types.ThumbnailConfiguration.

type TimecodeConfig added in v1.2.0

type TimecodeConfig struct {
	Source        string
	SyncThreshold int32
}

TimecodeConfig configures how EncoderSettings acquires/adjusts source timecodes. Wire keys "source"/"syncThreshold" -- verified against types.TimecodeConfig.

type VideoBlackFailoverSettings added in v1.2.0

type VideoBlackFailoverSettings struct {
	BlackDetectThreshold    float64
	VideoBlackThresholdMsec int32
}

VideoBlackFailoverSettings triggers failover after a period of black video.

type VideoDescription added in v1.2.0

type VideoDescription struct {
	Name            string
	RespondToAfd    string
	ScalingBehavior string
	Height          int32
	Width           int32
	Sharpness       int32
}

VideoDescription names one video encode. Wire keys "name"/"height"/ "respondToAfd"/"scalingBehavior"/"sharpness"/"width" -- verified against types.VideoDescription. CodecSettings (the H264/H265/AV1/MPEG2/etc union) and VideoPreprocessors are deliberately NOT modeled; see PARITY.md's gaps entry.

type WhitelistRule

type WhitelistRule struct {
	Cidr string `json:"cidr"`
}

WhitelistRule is a CIDR-based whitelist entry.

Jump to

Keyboard shortcuts

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