startEdgeConfigurationUpdate method

Future<StartEdgeConfigurationUpdateOutput> startEdgeConfigurationUpdate({
  1. required EdgeConfig edgeConfig,
  2. String? streamARN,
  3. String? streamName,
})

An asynchronous API that updates a stream’s existing edge configuration. The Kinesis Video Stream will sync the stream’s edge configuration with the Edge Agent IoT Greengrass component that runs on an IoT Hub Device, setup at your premise. The time to sync can vary and depends on the connectivity of the Hub Device. The SyncStatus will be updated as the edge configuration is acknowledged, and synced with the Edge Agent.

If this API is invoked for the first time, a new edge configuration will be created for the stream, and the sync status will be set to SYNCING. You will have to wait for the sync status to reach a terminal state such as: IN_SYNC, or SYNC_FAILED, before using this API again. If you invoke this API during the syncing process, a ResourceInUseException will be thrown. The connectivity of the stream’s edge configuration and the Edge Agent will be retried for 15 minutes. After 15 minutes, the status will transition into the SYNC_FAILED state.

To move an edge configuration from one device to another, use DeleteEdgeConfiguration to delete the current edge configuration. You can then invoke StartEdgeConfigurationUpdate with an updated Hub Device ARN.

May throw AccessDeniedException. May throw ClientLimitExceededException. May throw InvalidArgumentException. May throw NoDataRetentionException. May throw ResourceInUseException. May throw ResourceNotFoundException.

Parameter edgeConfig : The edge configuration details required to invoke the update process.

Parameter streamARN : The Amazon Resource Name (ARN) of the stream. Specify either the StreamName or the StreamARN.

Parameter streamName : The name of the stream whose edge configuration you want to update. Specify either the StreamName or the StreamARN.

Implementation

Future<StartEdgeConfigurationUpdateOutput> startEdgeConfigurationUpdate({
  required EdgeConfig edgeConfig,
  String? streamARN,
  String? streamName,
}) async {
  final $payload = <String, dynamic>{
    'EdgeConfig': edgeConfig,
    if (streamARN != null) 'StreamARN': streamARN,
    if (streamName != null) 'StreamName': streamName,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/startEdgeConfigurationUpdate',
    exceptionFnMap: _exceptionFns,
  );
  return StartEdgeConfigurationUpdateOutput.fromJson(response);
}