listInsightsMetricData method

Future<ListInsightsMetricDataResponse> listInsightsMetricData({
  1. required String eventName,
  2. required String eventSource,
  3. required InsightType insightType,
  4. InsightsMetricDataType? dataType,
  5. DateTime? endTime,
  6. String? errorCode,
  7. int? maxResults,
  8. String? nextToken,
  9. int? period,
  10. DateTime? startTime,
  11. String? trailName,
})

Returns Insights metrics data for trails that have enabled Insights. The request must include the EventSource, EventName, and InsightType parameters.

If the InsightType is set to ApiErrorRateInsight, the request must also include the ErrorCode parameter.

The following are the available time periods for ListInsightsMetricData. Each cutoff is inclusive.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.
  • Data points with a period of 300 seconds (5-minute) are available for 63 days.
  • Data points with a period of 3600 seconds (1 hour) are available for 90 days.
To use ListInsightsMetricData operation, you must have the following permissions:
  • If ListInsightsMetricData is invoked with TrailName parameter, access to the ListInsightsMetricData API operation is linked to the cloudtrail:LookupEvents action and cloudtrail:ListInsightsData. To use this operation, you must have permissions to perform the cloudtrail:LookupEvents and cloudtrail:ListInsightsData action on the specific trail.
  • If ListInsightsMetricData is invoked without TrailName parameter, access to the ListInsightsMetricData API operation is linked to the cloudtrail:LookupEvents action only. To use this operation, you must have permissions to perform the cloudtrail:LookupEvents action.

May throw InvalidParameterException. May throw InvalidTrailNameException. May throw OperationNotPermittedException. May throw UnsupportedOperationException.

Parameter eventName : The name of the event, typically the Amazon Web Services API on which unusual levels of activity were recorded.

Parameter eventSource : The Amazon Web Services service to which the request was made, such as iam.amazonaws.com or s3.amazonaws.com.

Parameter insightType : The type of CloudTrail Insights event, which is either ApiCallRateInsight or ApiErrorRateInsight. The ApiCallRateInsight Insights type analyzes write-only management API calls that are aggregated per minute against a baseline API call volume. The ApiErrorRateInsight Insights type analyzes management API calls that result in error codes.

Parameter dataType : Type of data points to return. Valid values are NonZeroData and FillWithZeros. The default is NonZeroData.

Parameter endTime : Specifies, in UTC, the end time for time-series data. The value specified is exclusive; results include data points up to the specified time stamp.

The default is the time of request.

Parameter errorCode : Conditionally required if the InsightType parameter is set to ApiErrorRateInsight.

If returning metrics for the ApiErrorRateInsight Insights type, this is the error to retrieve data for. For example, AccessDenied.

Parameter maxResults : The maximum number of data points to return. Valid values are integers from 1 to 21600. The default value is 21600.

Parameter nextToken : Returned if all datapoints can't be returned in a single call. For example, due to reaching MaxResults.

Add this parameter to the request to continue retrieving results starting from the last evaluated point.

Parameter period : Granularity of data to retrieve, in seconds. Valid values are 60, 300, and 3600. If you specify any other value, you will get an error. The default is 3600 seconds.

Parameter startTime : Specifies, in UTC, the start time for time-series data. The value specified is inclusive; results include data points with the specified time stamp.

The default is 90 days before the time of request.

Parameter trailName : The Amazon Resource Name(ARN) or name of the trail for which you want to retrieve Insights metrics data. This parameter should only be provided to fetch Insights metrics data generated on trails logging data events. This parameter is not required for Insights metric data generated on trails logging management events.

Implementation

Future<ListInsightsMetricDataResponse> listInsightsMetricData({
  required String eventName,
  required String eventSource,
  required InsightType insightType,
  InsightsMetricDataType? dataType,
  DateTime? endTime,
  String? errorCode,
  int? maxResults,
  String? nextToken,
  int? period,
  DateTime? startTime,
  String? trailName,
}) async {
  _s.validateNumRange(
    'maxResults',
    maxResults,
    1,
    21600,
  );
  _s.validateNumRange(
    'period',
    period,
    60,
    3600,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'CloudTrail_20131101.ListInsightsMetricData'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'EventName': eventName,
      'EventSource': eventSource,
      'InsightType': insightType.value,
      if (dataType != null) 'DataType': dataType.value,
      if (endTime != null) 'EndTime': unixTimestampToJson(endTime),
      if (errorCode != null) 'ErrorCode': errorCode,
      if (maxResults != null) 'MaxResults': maxResults,
      if (nextToken != null) 'NextToken': nextToken,
      if (period != null) 'Period': period,
      if (startTime != null) 'StartTime': unixTimestampToJson(startTime),
      if (trailName != null) 'TrailName': trailName,
    },
  );

  return ListInsightsMetricDataResponse.fromJson(jsonResponse.body);
}