updatePracticeRunConfiguration method

Future<UpdatePracticeRunConfigurationResponse> updatePracticeRunConfiguration({
  1. required String resourceIdentifier,
  2. List<String>? allowedWindows,
  3. List<String>? blockedDates,
  4. List<String>? blockedWindows,
  5. List<ControlCondition>? blockingAlarms,
  6. List<ControlCondition>? outcomeAlarms,
})

Update a practice run configuration to change one or more of the following: add, change, or remove the blocking alarm; change the outcome alarm; or add, change, or remove blocking dates or time windows.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter resourceIdentifier : The identifier for the resource that you want to update the practice run configuration for. The identifier is the Amazon Resource Name (ARN) for the resource.

Parameter allowedWindows : Add, change, or remove windows of days and times for when you can, optionally, allow ARC to start a practice run for a resource.

The format for allowed windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Also, be aware of potential time adjustments that might be required for daylight saving time differences. Separate multiple allowed windows with spaces.

For example, say you want to allow practice runs only on Wednesdays and Fridays from noon to 5 p.m. For this scenario, you could set the following recurring days and times as allowed windows, for example: Wed-12:00-Wed:17:00 Fri-12:00-Fri:17:00.

Parameter blockedDates : Add, change, or remove blocked dates for a practice run in zonal autoshift.

Optionally, you can block practice runs for specific calendar dates. The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Separate multiple blocked dates with spaces.

For example, if you have an application update scheduled to launch on May 1, 2024, and you don't want practice runs to shift traffic away at that time, you could set a blocked date for 2024-05-01.

Parameter blockedWindows : Add, change, or remove windows of days and times for when you can, optionally, block ARC from starting a practice run for a resource.

The format for blocked windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when you specify dates, that dates and times for practice runs are in UTC. Also, be aware of potential time adjustments that might be required for daylight saving time differences. Separate multiple blocked windows with spaces.

For example, say you run business report summaries three days a week. For this scenario, you might set the following recurring days and times as blocked windows, for example: MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30.

Parameter blockingAlarms : Add, change, or remove the Amazon CloudWatch alarms that you optionally specify as the blocking alarms for practice runs.

Parameter outcomeAlarms : Specify one or more Amazon CloudWatch alarms as the outcome alarms for practice runs.

Implementation

Future<UpdatePracticeRunConfigurationResponse>
    updatePracticeRunConfiguration({
  required String resourceIdentifier,
  List<String>? allowedWindows,
  List<String>? blockedDates,
  List<String>? blockedWindows,
  List<ControlCondition>? blockingAlarms,
  List<ControlCondition>? outcomeAlarms,
}) async {
  final $payload = <String, dynamic>{
    if (allowedWindows != null) 'allowedWindows': allowedWindows,
    if (blockedDates != null) 'blockedDates': blockedDates,
    if (blockedWindows != null) 'blockedWindows': blockedWindows,
    if (blockingAlarms != null) 'blockingAlarms': blockingAlarms,
    if (outcomeAlarms != null) 'outcomeAlarms': outcomeAlarms,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PATCH',
    requestUri: '/configuration/${Uri.encodeComponent(resourceIdentifier)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdatePracticeRunConfigurationResponse.fromJson(response);
}