in aws-kendra-index/src/main/java/software/amazon/kendra/index/UpdateHandler.java [144:170]
private UpdateIndexResponse updateIndex(
final UpdateIndexRequest updateIndexRequest,
final ProxyClient<KendraClient> proxyClient) {
UpdateIndexResponse updateIndexResponse;
// In this code block we assume the previous DescribeIndex API call validated the resource exists and so doesn't
// catch and re-throw here.
try {
updateIndexResponse = proxyClient.injectCredentialsAndInvokeV2(updateIndexRequest, proxyClient.client()::updateIndex);
} catch (ValidationException e) {
throw new CfnInvalidRequestException(e.getMessage(), e);
} catch (ConflictException e) {
throw new CfnResourceConflictException(e);
} catch (ServiceQuotaExceededException e) {
throw new CfnServiceLimitExceededException(ResourceModel.TYPE_NAME, e.getMessage(), e.getCause());
} catch (final AwsServiceException e) {
/*
* While the handler contract states that the handler must always return a progress event,
* you may throw any instance of BaseHandlerException, as the wrapper map it to a progress event.
* Each BaseHandlerException maps to a specific error code, and you should map service exceptions as closely as possible
* to more specific error codes
*/
throw new CfnGeneralServiceException(UPDATE_INDEX, e);
}
logger.log(String.format("%s has successfully been updated.", ResourceModel.TYPE_NAME));
return updateIndexResponse;
}