deletePrincipalMapping method
Deletes a group so that all users that belong to the group can no longer access documents only available to that group.
For example, after deleting the group "Summer Interns", all interns who belonged to that group no longer see intern-only documents in their search results.
If you want to delete or replace users or sub groups of a group, you need
to use the PutPrincipalMapping operation. For example, if a
user in the group "Engineering" leaves the engineering team and another
user takes their place, you provide an updated list of users or sub groups
that belong to the "Engineering" group when calling
PutPrincipalMapping. You can update your internal list of
users or sub groups and input this list when calling
PutPrincipalMapping.
DeletePrincipalMapping is currently not supported in the
Amazon Web Services GovCloud (US-West) region.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
May throw ValidationException.
Parameter groupId :
The identifier of the group you want to delete.
Parameter indexId :
The identifier of the index you want to delete a group from.
Parameter dataSourceId :
The identifier of the data source you want to delete a group from.
A group can be tied to multiple data sources. You can delete a group from accessing documents in a certain data source. For example, the groups "Research", "Engineering", and "Sales and Marketing" are all tied to the company's documents stored in the data sources Confluence and Salesforce. You want to delete "Research" and "Engineering" groups from Salesforce, so that these groups cannot access customer-related documents stored in Salesforce. Only "Sales and Marketing" should access documents in the Salesforce data source.
Parameter orderingId :
The timestamp identifier you specify to ensure Amazon Kendra does not
override the latest DELETE action with previous actions. The
highest number ID, which is the ordering ID, is the latest action you want
to process and apply on top of other actions with lower number IDs. This
prevents previous actions with lower number IDs from possibly overriding
the latest action.
The ordering ID can be the Unix time of the last update you made to a
group members list. You would then provide this list when calling
PutPrincipalMapping. This ensures your DELETE
action for that updated group with the latest members list doesn't get
overwritten by earlier DELETE actions for the same group
which are yet to be processed.
The default ordering ID is the current Unix time in milliseconds that the action was received by Amazon Kendra.
Implementation
Future<void> deletePrincipalMapping({
required String groupId,
required String indexId,
String? dataSourceId,
int? orderingId,
}) async {
_s.validateNumRange(
'orderingId',
orderingId,
0,
32535158400000,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSKendraFrontendService.DeletePrincipalMapping'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'GroupId': groupId,
'IndexId': indexId,
if (dataSourceId != null) 'DataSourceId': dataSourceId,
if (orderingId != null) 'OrderingId': orderingId,
},
);
}