getCalendarState method

Future<GetCalendarStateResponse> getCalendarState({
  1. required List<String> calendarNames,
  2. String? atTime,
})

Gets the state of the AWS Systems Manager Change Calendar at an optional, specified time. If you specify a time, GetCalendarState returns the state of the calendar at a specific time, and returns the next time that the Change Calendar state will transition. If you do not specify a time, GetCalendarState assumes the current time. Change Calendar entries have two possible states: OPEN or CLOSED.

If you specify more than one calendar in a request, the command returns the status of OPEN only if all calendars in the request are open. If one or more calendars in the request are closed, the status returned is CLOSED.

For more information about Systems Manager Change Calendar, see AWS Systems Manager Change Calendar in the AWS Systems Manager User Guide.

May throw InternalServerError. May throw InvalidDocument. May throw InvalidDocumentType. May throw UnsupportedCalendarException.

Parameter calendarNames : The names or Amazon Resource Names (ARNs) of the Systems Manager documents that represent the calendar entries for which you want to get the state.

Parameter atTime : (Optional) The specific time for which you want to get calendar state information, in ISO 8601 format. If you do not add AtTime, the current time is assumed.

Implementation

Future<GetCalendarStateResponse> getCalendarState({
  required List<String> calendarNames,
  String? atTime,
}) async {
  ArgumentError.checkNotNull(calendarNames, 'calendarNames');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonSSM.GetCalendarState'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'CalendarNames': calendarNames,
      if (atTime != null) 'AtTime': atTime,
    },
  );

  return GetCalendarStateResponse.fromJson(jsonResponse.body);
}