putInsightSelectors method
Lets you enable Insights event logging on specific event categories by
specifying the Insights selectors that you want to enable on an existing
trail or event data store. You also use PutInsightSelectors
to turn off Insights event logging, by passing an empty list of Insights
types. The valid Insights event types are ApiErrorRateInsight
and ApiCallRateInsight, and valid EventCategories are
Management and Data.
To enable Insights on an event data store, you must specify the ARNs (or
ID suffix of the ARNs) for the source event data store
(EventDataStore) and the destination event data store
(InsightsDestination). The source event data store logs
management events and enables Insights. The destination event data store
logs Insights events based upon the management event activity of the
source event data store. The source and destination event data stores must
belong to the same Amazon Web Services account.
To log Insights events for a trail, you must specify the name
(TrailName) of the CloudTrail trail for which you want to
change or add Insights selectors.
-
For Management events Insights: To log CloudTrail Insights on the API call
rate, the trail or event data store must log
writemanagement events. To log CloudTrail Insights on the API error rate, the trail or event data store must logreadorwritemanagement events. -
For Data events Insights: To log CloudTrail Insights on the API call rate
or API error rate, the trail must log
readorwritedata events. Data events Insights are not supported on event data store.
write management events. To log
CloudTrail Insights events on API error rate, the trail or event data
store must log read or write management events.
You can call GetEventSelectors on a trail to check whether
the trail logs management events. You can call
GetEventDataStore on an event data store to check whether the
event data store logs management events.
For more information, see Working with CloudTrail Insights in the CloudTrail User Guide.
May throw CloudTrailARNInvalidException.
May throw InsufficientEncryptionPolicyException.
May throw InsufficientS3BucketPolicyException.
May throw InvalidHomeRegionException.
May throw InvalidInsightSelectorsException.
May throw InvalidParameterCombinationException.
May throw InvalidParameterException.
May throw InvalidTrailNameException.
May throw KmsException.
May throw NoManagementAccountSLRExistsException.
May throw NotOrganizationMasterAccountException.
May throw OperationNotPermittedException.
May throw S3BucketDoesNotExistException.
May throw ThrottlingException.
May throw TrailNotFoundException.
May throw UnsupportedOperationException.
Parameter insightSelectors :
Contains the Insights types you want to log on a specific category of
events on a trail or event data store. ApiCallRateInsight and
ApiErrorRateInsight are valid Insight types.The EventCategory
field can specify Management or Data events or
both. For event data store, you can log Insights for management events
only.
The ApiCallRateInsight Insights type analyzes write-only
management API calls or read and write data API calls that are aggregated
per minute against a baseline API call volume.
The ApiErrorRateInsight Insights type analyzes management and
data API calls that result in error codes. The error is shown if the API
call is unsuccessful.
Parameter eventDataStore :
The ARN (or ID suffix of the ARN) of the source event data store for which
you want to change or add Insights selectors. To enable Insights on an
event data store, you must provide both the EventDataStore
and InsightsDestination parameters.
You cannot use this parameter with the TrailName parameter.
Parameter insightsDestination :
The ARN (or ID suffix of the ARN) of the destination event data store that
logs Insights events. To enable Insights on an event data store, you must
provide both the EventDataStore and
InsightsDestination parameters.
You cannot use this parameter with the TrailName parameter.
Parameter trailName :
The name of the CloudTrail trail for which you want to change or add
Insights selectors.
You cannot use this parameter with the EventDataStore and
InsightsDestination parameters.
Implementation
Future<PutInsightSelectorsResponse> putInsightSelectors({
required List<InsightSelector> insightSelectors,
String? eventDataStore,
String? insightsDestination,
String? trailName,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'CloudTrail_20131101.PutInsightSelectors'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'InsightSelectors': insightSelectors,
if (eventDataStore != null) 'EventDataStore': eventDataStore,
if (insightsDestination != null)
'InsightsDestination': insightsDestination,
if (trailName != null) 'TrailName': trailName,
},
);
return PutInsightSelectorsResponse.fromJson(jsonResponse.body);
}