UpdateFlow
Updates an existing flow.
Note
Because UpdateFlowSources and UpdateFlow are separate operations, you can't change both the source type AND the flow size in a single request.
-
If you have a
MEDIUMflow and you want to change the flow source to NDIĀ®:-
First, use the
UpdateFlowoperation to upgrade the flow size toLARGE. -
After that, you can then use the
UpdateFlowSourceoperation to configure the NDI source.
-
-
If you're switching from an NDI source to a transport stream (TS) source and want to downgrade the flow size:
-
First, use the
UpdateFlowSourceoperation to change the flow source type. -
After that, you can then use the
UpdateFlowoperation to downgrade the flow size toMEDIUM.
-
Request Syntax
PUT /v1/flows/flowArn HTTP/1.1
Content-type: application/json
{
"encodingConfig": {
"encodingProfile": "string",
"videoMaxBitrate": number
},
"flowSize": "string",
"maintenance": {
"maintenanceDay": "string",
"maintenanceScheduledDate": "string",
"maintenanceStartHour": "string"
},
"ndiConfig": {
"machineName": "string",
"ndiDiscoveryServers": [
{
"discoveryServerAddress": "string",
"discoveryServerPort": number,
"vpcInterfaceAdapter": "string"
}
],
"ndiState": "string"
},
"sourceFailoverConfig": {
"failoverMode": "string",
"recoveryWindow": number,
"sourcePriority": {
"primarySource": "string"
},
"state": "string"
},
"sourceMonitoringConfig": {
"audioMonitoringSettings": [
{
"silentAudio": {
"state": "string",
"thresholdSeconds": number
}
}
],
"contentQualityAnalysisState": "string",
"thumbnailState": "string",
"videoMonitoringSettings": [
{
"blackFrames": {
"state": "string",
"thresholdSeconds": number
},
"frozenFrames": {
"state": "string",
"thresholdSeconds": number
}
}
]
}
}
URI Request Parameters
The request uses the following URI parameters.
- flowArn
-
The Amazon Resource Name (ARN) of the flow that you want to update.
Pattern:
arn:.+:mediaconnect.+:flow:.+Required: Yes
Request Body
The request accepts the following data in JSON format.
- encodingConfig
-
The encoding configuration to apply to the NDIĀ® source when transcoding it to a transport stream for downstream distribution. You can choose between several predefined encoding profiles based on common use cases.
Type: EncodingConfig object
Required: No
- flowSize
-
Determines the processing capacity and feature set of the flow.
Type: String
Valid Values:
MEDIUM | LARGE | LARGE_4XRequired: No
- maintenance
-
The maintenance setting of the flow.
Type: UpdateMaintenance object
Required: No
- ndiConfig
-
Specifies the configuration settings for a flow's NDI source or output. Required when the flow includes an NDI source or output.
Type: NdiConfig object
Required: No
- sourceFailoverConfig
-
The settings for source failover.
Type: UpdateFailoverConfig object
Required: No
- sourceMonitoringConfig
-
The settings for source monitoring.
Type: MonitoringConfig object
Required: No
Response Syntax
HTTP/1.1 202
Content-type: application/json
{
"flow": {
"availabilityZone": "string",
"description": "string",
"egressIp": "string",
"encodingConfig": {
"encodingProfile": "string",
"videoMaxBitrate": number
},
"entitlements": [
{
"dataTransferSubscriberFeePercent": number,
"description": "string",
"encryption": {
"algorithm": "string",
"constantInitializationVector": "string",
"deviceId": "string",
"keyType": "string",
"region": "string",
"resourceId": "string",
"roleArn": "string",
"secretArn": "string",
"url": "string"
},
"entitlementArn": "string",
"entitlementStatus": "string",
"name": "string",
"subscribers": [ "string" ]
}
],
"flowArn": "string",
"flowSize": "string",
"maintenance": {
"maintenanceDay": "string",
"maintenanceDeadline": "string",
"maintenanceScheduledDate": "string",
"maintenanceStartHour": "string"
},
"mediaStreams": [
{
"attributes": {
"fmtp": {
"channelOrder": "string",
"colorimetry": "string",
"exactFramerate": "string",
"par": "string",
"range": "string",
"scanMode": "string",
"tcs": "string"
},
"lang": "string"
},
"clockRate": number,
"description": "string",
"fmt": number,
"mediaStreamId": number,
"mediaStreamName": "string",
"mediaStreamType": "string",
"videoFormat": "string"
}
],
"name": "string",
"ndiConfig": {
"machineName": "string",
"ndiDiscoveryServers": [
{
"discoveryServerAddress": "string",
"discoveryServerPort": number,
"vpcInterfaceAdapter": "string"
}
],
"ndiState": "string"
},
"outputs": [
{
"bridgeArn": "string",
"bridgePorts": [ number ],
"connectedRouterInputArn": "string",
"dataTransferSubscriberFeePercent": number,
"description": "string",
"destination": "string",
"encryption": {
"algorithm": "string",
"constantInitializationVector": "string",
"deviceId": "string",
"keyType": "string",
"region": "string",
"resourceId": "string",
"roleArn": "string",
"secretArn": "string",
"url": "string"
},
"entitlementArn": "string",
"listenerAddress": "string",
"mediaLiveInputArn": "string",
"mediaStreamOutputConfigurations": [
{
"destinationConfigurations": [
{
"destinationIp": "string",
"destinationPort": number,
"interface": {
"name": "string"
},
"outboundIp": "string"
}
],
"encodingName": "string",
"encodingParameters": {
"compressionFactor": number,
"encoderProfile": "string"
},
"mediaStreamName": "string"
}
],
"name": "string",
"outputArn": "string",
"outputStatus": "string",
"peerIpAddress": "string",
"port": number,
"routerIntegrationState": "string",
"routerIntegrationTransitEncryption": {
"encryptionKeyConfiguration": { ... },
"encryptionKeyType": "string"
},
"transport": {
"cidrAllowList": [ "string" ],
"maxBitrate": number,
"maxLatency": number,
"maxSyncBuffer": number,
"minLatency": number,
"ndiProgramName": "string",
"ndiSourceSettings": {
"sourceName": "string"
},
"ndiSpeedHqQuality": number,
"protocol": "string",
"remoteId": "string",
"senderControlPort": number,
"senderIpAddress": "string",
"smoothingLatency": number,
"sourceListenerAddress": "string",
"sourceListenerPort": number,
"streamId": "string"
},
"vpcInterfaceAttachment": {
"vpcInterfaceName": "string"
}
}
],
"source": {
"connectedRouterOutputArn": "string",
"dataTransferSubscriberFeePercent": number,
"decryption": {
"algorithm": "string",
"constantInitializationVector": "string",
"deviceId": "string",
"keyType": "string",
"region": "string",
"resourceId": "string",
"roleArn": "string",
"secretArn": "string",
"url": "string"
},
"description": "string",
"entitlementArn": "string",
"gatewayBridgeSource": {
"bridgeArn": "string",
"vpcInterfaceAttachment": {
"vpcInterfaceName": "string"
}
},
"ingestIp": "string",
"ingestPort": number,
"mediaStreamSourceConfigurations": [
{
"encodingName": "string",
"inputConfigurations": [
{
"inputIp": "string",
"inputPort": number,
"interface": {
"name": "string"
}
}
],
"mediaStreamName": "string"
}
],
"name": "string",
"peerIpAddress": "string",
"routerIntegrationState": "string",
"routerIntegrationTransitDecryption": {
"encryptionKeyConfiguration": { ... },
"encryptionKeyType": "string"
},
"senderControlPort": number,
"senderIpAddress": "string",
"sourceArn": "string",
"transport": {
"cidrAllowList": [ "string" ],
"maxBitrate": number,
"maxLatency": number,
"maxSyncBuffer": number,
"minLatency": number,
"ndiProgramName": "string",
"ndiSourceSettings": {
"sourceName": "string"
},
"ndiSpeedHqQuality": number,
"protocol": "string",
"remoteId": "string",
"senderControlPort": number,
"senderIpAddress": "string",
"smoothingLatency": number,
"sourceListenerAddress": "string",
"sourceListenerPort": number,
"streamId": "string"
},
"vpcInterfaceName": "string",
"whitelistCidr": "string"
},
"sourceFailoverConfig": {
"failoverMode": "string",
"recoveryWindow": number,
"sourcePriority": {
"primarySource": "string"
},
"state": "string"
},
"sourceMonitoringConfig": {
"audioMonitoringSettings": [
{
"silentAudio": {
"state": "string",
"thresholdSeconds": number
}
}
],
"contentQualityAnalysisState": "string",
"thumbnailState": "string",
"videoMonitoringSettings": [
{
"blackFrames": {
"state": "string",
"thresholdSeconds": number
},
"frozenFrames": {
"state": "string",
"thresholdSeconds": number
}
}
]
},
"sources": [
{
"connectedRouterOutputArn": "string",
"dataTransferSubscriberFeePercent": number,
"decryption": {
"algorithm": "string",
"constantInitializationVector": "string",
"deviceId": "string",
"keyType": "string",
"region": "string",
"resourceId": "string",
"roleArn": "string",
"secretArn": "string",
"url": "string"
},
"description": "string",
"entitlementArn": "string",
"gatewayBridgeSource": {
"bridgeArn": "string",
"vpcInterfaceAttachment": {
"vpcInterfaceName": "string"
}
},
"ingestIp": "string",
"ingestPort": number,
"mediaStreamSourceConfigurations": [
{
"encodingName": "string",
"inputConfigurations": [
{
"inputIp": "string",
"inputPort": number,
"interface": {
"name": "string"
}
}
],
"mediaStreamName": "string"
}
],
"name": "string",
"peerIpAddress": "string",
"routerIntegrationState": "string",
"routerIntegrationTransitDecryption": {
"encryptionKeyConfiguration": { ... },
"encryptionKeyType": "string"
},
"senderControlPort": number,
"senderIpAddress": "string",
"sourceArn": "string",
"transport": {
"cidrAllowList": [ "string" ],
"maxBitrate": number,
"maxLatency": number,
"maxSyncBuffer": number,
"minLatency": number,
"ndiProgramName": "string",
"ndiSourceSettings": {
"sourceName": "string"
},
"ndiSpeedHqQuality": number,
"protocol": "string",
"remoteId": "string",
"senderControlPort": number,
"senderIpAddress": "string",
"smoothingLatency": number,
"sourceListenerAddress": "string",
"sourceListenerPort": number,
"streamId": "string"
},
"vpcInterfaceName": "string",
"whitelistCidr": "string"
}
],
"status": "string",
"vpcInterfaces": [
{
"name": "string",
"networkInterfaceIds": [ "string" ],
"networkInterfaceType": "string",
"roleArn": "string",
"securityGroupIds": [ "string" ],
"subnetId": "string"
}
]
}
}
Response Elements
If the action is successful, the service sends back an HTTP 202 response.
The following data is returned in JSON format by the service.
Errors
For information about the errors that are common to all actions, see Common Errors.
- BadRequestException
-
This exception is thrown if the request contains a semantic error. The precise meaning depends on the API, and is documented in the error message.
HTTP Status Code: 400
- ForbiddenException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 403
- InternalServerErrorException
-
The server encountered an internal error and is unable to complete the request.
HTTP Status Code: 500
- NotFoundException
-
One or more of the resources in the request does not exist in the system.
HTTP Status Code: 404
- ServiceUnavailableException
-
The service is currently unavailable or busy.
HTTP Status Code: 503
- TooManyRequestsException
-
The request was denied due to request throttling.
HTTP Status Code: 429
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: