startReplay method
Starts the specified replay. Events are not necessarily replayed in the
exact same order that they were added to the archive. A replay processes
events to replay based on the time in the event, and replays them using 1
minute intervals. If you specify an EventStartTime
and an
EventEndTime
that covers a 20 minute time range, the events
are replayed from the first minute of that 20 minute range first. Then the
events from the second minute are replayed. You can use
DescribeReplay
to determine the progress of a replay. The
value returned for EventLastReplayedTime
indicates the time
within the specified time range associated with the last event replayed.
May throw ResourceNotFoundException. May throw ResourceAlreadyExistsException. May throw InvalidEventPatternException. May throw LimitExceededException. May throw InternalException.
Parameter destination
:
A ReplayDestination
object that includes details about the
destination for the replay.
Parameter eventEndTime
:
A time stamp for the time to stop replaying events. Only events that
occurred between the EventStartTime
and
EventEndTime
are replayed.
Parameter eventSourceArn
:
The ARN of the archive to replay events from.
Parameter eventStartTime
:
A time stamp for the time to start replaying events. Only events that
occurred between the EventStartTime
and
EventEndTime
are replayed.
Parameter replayName
:
The name of the replay to start.
Parameter description
:
A description for the replay to start.
Implementation
Future<StartReplayResponse> startReplay({
required ReplayDestination destination,
required DateTime eventEndTime,
required String eventSourceArn,
required DateTime eventStartTime,
required String replayName,
String? description,
}) async {
ArgumentError.checkNotNull(destination, 'destination');
ArgumentError.checkNotNull(eventEndTime, 'eventEndTime');
ArgumentError.checkNotNull(eventSourceArn, 'eventSourceArn');
_s.validateStringLength(
'eventSourceArn',
eventSourceArn,
1,
1600,
isRequired: true,
);
ArgumentError.checkNotNull(eventStartTime, 'eventStartTime');
ArgumentError.checkNotNull(replayName, 'replayName');
_s.validateStringLength(
'replayName',
replayName,
1,
64,
isRequired: true,
);
_s.validateStringLength(
'description',
description,
0,
512,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSEvents.StartReplay'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Destination': destination,
'EventEndTime': unixTimestampToJson(eventEndTime),
'EventSourceArn': eventSourceArn,
'EventStartTime': unixTimestampToJson(eventStartTime),
'ReplayName': replayName,
if (description != null) 'Description': description,
},
);
return StartReplayResponse.fromJson(jsonResponse.body);
}