getCalendarState method

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

Gets the state of a Amazon Web Services Systems Manager change calendar at the current time or a specified time. If you specify a time, GetCalendarState returns the state of the calendar at that specific time, and returns the next time that the change calendar state will transition. If you don't specify a time, GetCalendarState uses 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 Change Calendar, a tool in Amazon Web Services Systems Manager, see Amazon Web Services Systems Manager Change Calendar in the Amazon Web Services Systems Manager User Guide.

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

Parameter calendarNames : The names of Amazon Resource Names (ARNs) of the Systems Manager documents (SSM 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 don't specify a value or AtTime, the current time is used.

Implementation

Future<GetCalendarStateResponse> getCalendarState({
  required List<String> calendarNames,
  String? atTime,
}) async {
  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);
}