Interface AutomaticInputFailover

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
AutomaticInputFailover.Jsii$Proxy

@Generated(value="jsii-pacmak/1.139.0 (build 26a6b54)", date="2026-09-02T11:03:40.924Z") @Stability(Experimental) public interface AutomaticInputFailover extends software.amazon.jsii.JsiiSerializable
(experimental) Automatic input failover configuration for an input attachment.

When the active (primary) input meets any of the failover conditions, MediaLive switches to the secondary input without restarting the channel. This is input-source redundancy, distinct from the pipeline redundancy provided by ChannelClass.STANDARD.

Example:

 Stack stack;
 IInput primaryInput;
 IInput secondaryInput;
 AudioSelector audioSelector;
 EncodeConfiguration video;
 EncodeConfiguration audio;
 IBucket bucket;
 Channel.Builder.create(stack, "Channel")
         .inputs(List.of(InputAttachment.builder()
                 .input(primaryInput)
                 .automaticInputFailover(AutomaticInputFailover.builder()
                         .secondaryInput(secondaryInput)
                         .inputPreference(InputPreference.PRIMARY_INPUT_PREFERRED)
                         .errorClearTime(Duration.seconds(3))
                         .failoverConditions(List.of(FailoverCondition.inputLoss(InputLossFailoverProps.builder().threshold(Duration.millis(1500)).build()), FailoverCondition.audioSilence(AudioSilenceFailoverProps.builder().audioSelector(audioSelector).threshold(Duration.seconds(2)).build()), FailoverCondition.videoBlack(VideoBlackFailoverProps.builder().blackDetectThreshold(0.1).threshold(Duration.seconds(1)).build())))
                         .build())
                 .build(), InputAttachment.builder()
                 // The secondary input must also be attached to the channel as its own input.
                 .input(secondaryInput)
                 .build()))
         .outputGroups(List.of(OutputGroupConfiguration.hls(HlsOutputGroupProps.builder()
                 .name("hls")
                 .destinations(List.of(OutputDestination.toBucket(bucket, "live/stream")))
                 .outputs(List.of(HlsOutputDefinition.builder().encodes(List.of(video, audio)).outputName("hls_out").build()))
                 .build())))
         .build();
 

See Also:
  • Method Details

    • getSecondaryInput

      @Stability(Experimental) @NotNull IInput getSecondaryInput()
      (experimental) The secondary input to fail over to. Must be the same input class as the primary input.

      [disable-awslint:prefer-ref-interface]

    • getErrorClearTime

      @Stability(Experimental) @Nullable default Duration getErrorClearTime()
      (experimental) How long a recovered input must remain free of failover conditions before it is considered healthy.

      Particularly relevant with InputPreference.PRIMARY_INPUT_PREFERRED.

      Default: - MediaLive service default

    • getFailoverConditions

      @Stability(Experimental) @Nullable default List<FailoverCondition> getFailoverConditions()
      (experimental) The conditions that trigger failover to the secondary input.

      Default: - a single input-loss condition with the MediaLive service default threshold

    • getInputPreference

      @Stability(Experimental) @Nullable default InputPreference getInputPreference()
      (experimental) Which input to prefer once a failed input has recovered.

      Default: - EQUAL_INPUT_PREFERENCE, applied by MediaLive

    • builder

      @Stability(Experimental) static AutomaticInputFailover.Builder builder()
      Returns:
      a AutomaticInputFailover.Builder of AutomaticInputFailover