updateFlowOutput method

Future<UpdateFlowOutputResponse> updateFlowOutput({
  1. required String flowArn,
  2. required String outputArn,
  3. List<String>? cidrAllowList,
  4. String? description,
  5. String? destination,
  6. UpdateEncryption? encryption,
  7. int? maxLatency,
  8. List<MediaStreamOutputConfigurationRequest>? mediaStreamOutputConfigurations,
  9. int? minLatency,
  10. NdiOutputTimecodeSource? ndiOutputTimecodeSource,
  11. String? ndiProgramName,
  12. int? ndiSpeedHqQuality,
  13. OutputStatus? outputStatus,
  14. int? port,
  15. Protocol? protocol,
  16. String? remoteId,
  17. State? routerIntegrationState,
  18. FlowTransitEncryption? routerIntegrationTransitEncryption,
  19. int? senderControlPort,
  20. String? senderIpAddress,
  21. int? smoothingLatency,
  22. String? streamId,
  23. VpcInterfaceAttachment? vpcInterfaceAttachment,
})

Updates an existing flow output.

May throw BadRequestException. May throw ForbiddenException. May throw InternalServerErrorException. May throw NotFoundException. May throw ServiceUnavailableException. May throw TooManyRequestsException.

Parameter flowArn : The Amazon Resource Name (ARN) of the flow that is associated with the output that you want to update.

Parameter outputArn : The ARN of the output that you want to update.

Parameter cidrAllowList : The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.

Parameter description : A description of the output. This description appears only on the MediaConnect console and will not be seen by the end user.

Parameter destination : The IP address where you want to send the output.

Parameter encryption : The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key). Allowable encryption types: static-key.

Parameter maxLatency : The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.

Parameter mediaStreamOutputConfigurations : The media streams that are associated with the output, and the parameters for those associations.

Parameter minLatency : The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.

Parameter ndiOutputTimecodeSource : Controls how MediaConnect generates timecodes for NDI output frames. If you don't specify this field, MediaConnect leaves the value unchanged.

  • EMBEDDED_TIMECODE - Preserves timecodes from the input transport stream. The timecodes must be embedded in the video stream as SEI timing messages. If no embedded timecode is detected, MediaConnect uses the UTC system time instead.
  • UTC_SYSTEM_TIME - Generates timecodes based on the system clock time when each frame is sent.

Parameter ndiProgramName : A suffix for the name of the NDI® sender that the flow creates. If a custom name isn't specified, MediaConnect uses the output name.

Parameter ndiSpeedHqQuality : A quality setting for the NDI Speed HQ encoder.

Parameter outputStatus : An indication of whether the output should transmit data or not. If you don't specify the outputStatus field in your request, MediaConnect leaves the value unchanged.

Parameter port : The port to use when content is distributed to this output.

Parameter protocol : The protocol to use for the output.

Parameter remoteId : The remote ID for the Zixi-pull stream.

Parameter routerIntegrationState : Indicates whether to enable or disable router integration for this flow output.

Parameter senderControlPort : The port that the flow uses to send outbound requests to initiate connection with the sender.

Parameter senderIpAddress : The IP address that the flow communicates with to initiate connection with the sender.

Parameter smoothingLatency : The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.

Parameter streamId : The stream ID that you want to use for this transport. This parameter applies only to Zixi and SRT caller-based streams.

Parameter vpcInterfaceAttachment : The name of the VPC interface attachment to use for this output.

Implementation

Future<UpdateFlowOutputResponse> updateFlowOutput({
  required String flowArn,
  required String outputArn,
  List<String>? cidrAllowList,
  String? description,
  String? destination,
  UpdateEncryption? encryption,
  int? maxLatency,
  List<MediaStreamOutputConfigurationRequest>?
      mediaStreamOutputConfigurations,
  int? minLatency,
  NdiOutputTimecodeSource? ndiOutputTimecodeSource,
  String? ndiProgramName,
  int? ndiSpeedHqQuality,
  OutputStatus? outputStatus,
  int? port,
  Protocol? protocol,
  String? remoteId,
  State? routerIntegrationState,
  FlowTransitEncryption? routerIntegrationTransitEncryption,
  int? senderControlPort,
  String? senderIpAddress,
  int? smoothingLatency,
  String? streamId,
  VpcInterfaceAttachment? vpcInterfaceAttachment,
}) async {
  final $payload = <String, dynamic>{
    if (cidrAllowList != null) 'cidrAllowList': cidrAllowList,
    if (description != null) 'description': description,
    if (destination != null) 'destination': destination,
    if (encryption != null) 'encryption': encryption,
    if (maxLatency != null) 'maxLatency': maxLatency,
    if (mediaStreamOutputConfigurations != null)
      'mediaStreamOutputConfigurations': mediaStreamOutputConfigurations,
    if (minLatency != null) 'minLatency': minLatency,
    if (ndiOutputTimecodeSource != null)
      'ndiOutputTimecodeSource': ndiOutputTimecodeSource.value,
    if (ndiProgramName != null) 'ndiProgramName': ndiProgramName,
    if (ndiSpeedHqQuality != null) 'ndiSpeedHqQuality': ndiSpeedHqQuality,
    if (outputStatus != null) 'outputStatus': outputStatus.value,
    if (port != null) 'port': port,
    if (protocol != null) 'protocol': protocol.value,
    if (remoteId != null) 'remoteId': remoteId,
    if (routerIntegrationState != null)
      'routerIntegrationState': routerIntegrationState.value,
    if (routerIntegrationTransitEncryption != null)
      'routerIntegrationTransitEncryption':
          routerIntegrationTransitEncryption,
    if (senderControlPort != null) 'senderControlPort': senderControlPort,
    if (senderIpAddress != null) 'senderIpAddress': senderIpAddress,
    if (smoothingLatency != null) 'smoothingLatency': smoothingLatency,
    if (streamId != null) 'streamId': streamId,
    if (vpcInterfaceAttachment != null)
      'vpcInterfaceAttachment': vpcInterfaceAttachment,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/v1/flows/${Uri.encodeComponent(flowArn)}/outputs/${Uri.encodeComponent(outputArn)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateFlowOutputResponse.fromJson(response);
}