getImages method

Future<GetImagesOutput> getImages({
  1. required DateTime endTimestamp,
  2. required Format format,
  3. required ImageSelectorType imageSelectorType,
  4. required DateTime startTimestamp,
  5. Map<FormatConfigKey, String>? formatConfig,
  6. int? heightPixels,
  7. int? maxResults,
  8. String? nextToken,
  9. int? samplingInterval,
  10. String? streamARN,
  11. String? streamName,
  12. int? widthPixels,
})

Retrieves a list of images corresponding to each timestamp for a given time range, sampling interval, and image format configuration.

May throw ClientLimitExceededException. May throw InvalidArgumentException. May throw NoDataRetentionException. May throw NotAuthorizedException. May throw ResourceNotFoundException.

Parameter endTimestamp : The end timestamp for the range of images to be generated. If the time range between StartTimestamp and EndTimestamp is more than 300 seconds above StartTimestamp, you will receive an IllegalArgumentException.

Parameter format : The format that will be used to encode the image.

Parameter imageSelectorType : The origin of the Server or Producer timestamps to use to generate the images.

Parameter startTimestamp : The starting point from which the images should be generated. This StartTimestamp must be within an inclusive range of timestamps for an image to be returned.

Parameter formatConfig : The list of a key-value pair structure that contains extra parameters that can be applied when the image is generated. The FormatConfig key is the JPEGQuality, which indicates the JPEG quality key to be used to generate the image. The FormatConfig value accepts ints from 1 to 100. If the value is 1, the image will be generated with less quality and the best compression. If the value is 100, the image will be generated with the best quality and less compression. If no value is provided, the default value of the JPEGQuality key will be set to 80.

Parameter heightPixels : The height of the output image that is used in conjunction with the WidthPixels parameter. When both HeightPixels and WidthPixels parameters are provided, the image will be stretched to fit the specified aspect ratio. If only the HeightPixels parameter is provided, its original aspect ratio will be used to calculate the WidthPixels ratio. If neither parameter is provided, the original image size will be returned.

Parameter maxResults : The maximum number of images to be returned by the API.

Parameter nextToken : A token that specifies where to start paginating the next set of Images. This is the GetImages:NextToken from a previously truncated response.

Parameter samplingInterval : The time interval in milliseconds (ms) at which the images need to be generated from the stream. The minimum value that can be provided is 200 ms (5 images per second). If the timestamp range is less than the sampling interval, the image from the startTimestamp will be returned if available.

Parameter streamARN : The Amazon Resource Name (ARN) of the stream from which to retrieve the images. You must specify either the StreamName or the StreamARN.

Parameter streamName : The name of the stream from which to retrieve the images. You must specify either the StreamName or the StreamARN.

Parameter widthPixels : The width of the output image that is used in conjunction with the HeightPixels parameter. When both WidthPixels and HeightPixels parameters are provided, the image will be stretched to fit the specified aspect ratio. If only the WidthPixels parameter is provided or if only the HeightPixels is provided, a ValidationException will be thrown. If neither parameter is provided, the original image size from the stream will be returned.

Implementation

Future<GetImagesOutput> getImages({
  required DateTime endTimestamp,
  required Format format,
  required ImageSelectorType imageSelectorType,
  required DateTime startTimestamp,
  Map<FormatConfigKey, String>? formatConfig,
  int? heightPixels,
  int? maxResults,
  String? nextToken,
  int? samplingInterval,
  String? streamARN,
  String? streamName,
  int? widthPixels,
}) async {
  _s.validateNumRange(
    'heightPixels',
    heightPixels,
    1,
    2160,
  );
  _s.validateNumRange(
    'maxResults',
    maxResults,
    1,
    100,
  );
  _s.validateNumRange(
    'widthPixels',
    widthPixels,
    1,
    3840,
  );
  final $payload = <String, dynamic>{
    'EndTimestamp': unixTimestampToJson(endTimestamp),
    'Format': format.value,
    'ImageSelectorType': imageSelectorType.value,
    'StartTimestamp': unixTimestampToJson(startTimestamp),
    if (formatConfig != null)
      'FormatConfig': formatConfig.map((k, e) => MapEntry(k.value, e)),
    if (heightPixels != null) 'HeightPixels': heightPixels,
    if (maxResults != null) 'MaxResults': maxResults,
    if (nextToken != null) 'NextToken': nextToken,
    if (samplingInterval != null) 'SamplingInterval': samplingInterval,
    if (streamARN != null) 'StreamARN': streamARN,
    if (streamName != null) 'StreamName': streamName,
    if (widthPixels != null) 'WidthPixels': widthPixels,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/getImages',
    exceptionFnMap: _exceptionFns,
  );
  return GetImagesOutput.fromJson(response);
}