> **Experimental**
>
> `@aws-cdk/aws-medialive-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# InputConfiguration

Defines the input configuration for a MediaLive Input.

Use the static factory methods to create the appropriate configuration for your input type.

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/input.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0-alpha.0/packages/@aws-cdk/aws-medialive-alpha/lib/input.ts#L595)

## Example

```ts
declare const stack: Stack;
declare const passphrase: secretsmanager.ISecret;

const sg = new medialive.InputSecurityGroup(stack, 'SrtSg', {
  allowlistRules: ['203.0.113.0/24'],
});

new medialive.Input(stack, 'SrtListenerInput', {
  inputName: 'srt-listener',
  input: medialive.InputConfiguration.srtListener({
    inputSecurityGroups: [sg],
    minimumLatency: Duration.millis(500),
    streamId: 'my-stream-id',
    decryption: {
      algorithm: medialive.SrtDecryptionAlgorithm.AES256,
      passphraseSecret: passphrase,
    },
  }),
});
```

## Methods

- `cdi(props: CdiInputProps): InputConfiguration // chainable` (static) — Create a CDI (uncompressed) input delivered into a VPC.

  MediaLive creates network interfaces in the supplied subnets and hands back the CDI push
  endpoints. The required EC2 permissions are granted to the role automatically.

- `inputDevice(props: InputDeviceInputProps): InputConfiguration // chainable` (static) — Create an Elemental Link input from one or two registered Link device IDs.

- `mediaConnect(props: MediaConnectInputProps): InputConfiguration // chainable` (static) — Create a MediaConnect flow input configuration.

  ```ts
     declare const role: iam.IRole;
     declare const flow: mediaconnect.IFlowRef;

     InputConfiguration.mediaConnect({
       flows: [flow],
       role,
     });
  ```

- `mediaConnectRouter(props?: MediaConnectRouterInputProps): InputConfiguration // chainable` (static) — Create a MediaConnect router input configuration.

  ```ts
     // Redundant pipelines with explicit AZs
     InputConfiguration.mediaConnectRouter({
       availabilityZones: ['us-east-1a', 'us-east-1b'],
     });
  ```

- `mp4File(sources: InputSource[]): InputConfiguration // chainable` (static) — Create an MP4 file pull input.

- `multicast(props: MulticastInputProps): InputConfiguration // chainable` (static) — Create a multicast input.

  Requires `anywhereSettings` on the channel.

- `rtmpPull(sources: InputSource[]): InputConfiguration // chainable` (static) — Create an RTMP pull input.

- `rtmpPush(props: PushInputProps): InputConfiguration // chainable` (static) — Create an RTMP push input.

  ```ts
     declare const securityGroup: InputSecurityGroup;

     InputConfiguration.rtmpPush({
       inputSecurityGroups: [securityGroup],
     });
  ```

- `rtpPush(props: PushInputProps): InputConfiguration // chainable` (static) — Create an RTP push input.

- `sdi(sources: ISdiSource[]): InputConfiguration // chainable` (static) — Create an SDI input configuration.

- `smpte2110ReceiverGroup(props: Smpte2110InputProps): InputConfiguration // chainable` (static) — Create a SMPTE 2110 receiver group input.

  Requires `anywhereSettings` on the channel.

- `srtCaller(sources: SrtCallerSourceProps[]): InputConfiguration // chainable` (static) — Create an SRT caller input configuration.

  ```ts
     InputConfiguration.srtCaller([{
       srtListenerAddress: '10.0.0.1',
       srtListenerPort: 5000,
     }]);
  ```

- `srtListener(props: SrtListenerInputProps): InputConfiguration // chainable` (static) — Create an SRT listener input configuration.

- `tsFile(sources: InputSource[]): InputConfiguration // chainable` (static) — Create a TS file pull input.

- `udpPush(props: PushInputProps): InputConfiguration // chainable` (static) — Create a UDP push input.

- `urlPull(sources: InputSource[]): InputConfiguration // chainable` (static) — Create a URL pull input for HLS or TS streams.

  ```ts
     InputConfiguration.urlPull([
       InputSource.url('https://example.com/stream.m3u8'),
     ]);
  ```
