createChannel method

Future<CreateChannelResponse> createChannel({
  1. String? adConfigurationArn,
  2. bool? authorized,
  3. ContainerFormat? containerFormat,
  4. bool? insecureIngest,
  5. ChannelLatencyMode? latencyMode,
  6. MultitrackInputConfiguration? multitrackInputConfiguration,
  7. String? name,
  8. String? playbackRestrictionPolicyArn,
  9. TranscodePreset? preset,
  10. String? recordingConfigurationArn,
  11. Map<String, String>? tags,
  12. ChannelType? type,
})

Creates a new channel and an associated stream key to start streaming.

May throw AccessDeniedException. May throw PendingVerification. May throw ResourceNotFoundException. May throw ServiceQuotaExceededException. May throw ValidationException.

Parameter adConfigurationArn : ARN of the ad configuration associated with the channel.

Parameter authorized : Whether the channel is private (enabled for playback authorization). Default: false.

Parameter containerFormat : Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.

Parameter insecureIngest : Whether the channel allows insecure RTMP and SRT ingest. Default: false.

Parameter latencyMode : Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW.

Parameter multitrackInputConfiguration : Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.

Parameter name : Channel name.

Parameter playbackRestrictionPolicyArn : Playback-restriction-policy ARN. A valid ARN value here both specifies the ARN and enables playback restriction. Default: "" (empty string, no playback restriction policy is applied).

Parameter preset : Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string ("").

Parameter recordingConfigurationArn : Recording-configuration ARN. A valid ARN value here both specifies the ARN and enables recording. Default: "" (empty string, recording is disabled).

Parameter tags : Array of 1-50 maps, each of the form string:string (key:value). See Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details, including restrictions that apply to tags and "Tag naming limits and requirements"; Amazon IVS has no service-specific constraints beyond what is documented there.

Parameter type : Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable input resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. For details, see Channel Types.

Implementation

Future<CreateChannelResponse> createChannel({
  String? adConfigurationArn,
  bool? authorized,
  ContainerFormat? containerFormat,
  bool? insecureIngest,
  ChannelLatencyMode? latencyMode,
  MultitrackInputConfiguration? multitrackInputConfiguration,
  String? name,
  String? playbackRestrictionPolicyArn,
  TranscodePreset? preset,
  String? recordingConfigurationArn,
  Map<String, String>? tags,
  ChannelType? type,
}) async {
  final $payload = <String, dynamic>{
    if (adConfigurationArn != null) 'adConfigurationArn': adConfigurationArn,
    if (authorized != null) 'authorized': authorized,
    if (containerFormat != null) 'containerFormat': containerFormat.value,
    if (insecureIngest != null) 'insecureIngest': insecureIngest,
    if (latencyMode != null) 'latencyMode': latencyMode.value,
    if (multitrackInputConfiguration != null)
      'multitrackInputConfiguration': multitrackInputConfiguration,
    if (name != null) 'name': name,
    if (playbackRestrictionPolicyArn != null)
      'playbackRestrictionPolicyArn': playbackRestrictionPolicyArn,
    if (preset != null) 'preset': preset.value,
    if (recordingConfigurationArn != null)
      'recordingConfigurationArn': recordingConfigurationArn,
    if (tags != null) 'tags': tags,
    if (type != null) 'type': type.value,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/CreateChannel',
    exceptionFnMap: _exceptionFns,
  );
  return CreateChannelResponse.fromJson(response);
}