in aws-connect-user/src/main/java/software/amazon/connect/user/UpdateHandler.java [30:70]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<ConnectClient> proxyClient,
final Logger logger) {
final ResourceModel desiredStateModel = request.getDesiredResourceState();
final ResourceModel previousStateModel = request.getPreviousResourceState();
final Set<Tag> previousResourceTags = convertResourceTagsToSet(request.getPreviousResourceTags());
final Set<Tag> desiredResourceTags = convertResourceTagsToSet(request.getDesiredResourceTags());
final Set<Tag> tagsToRemove = Sets.difference(previousResourceTags, desiredResourceTags);
final Set<Tag> tagsToAdd = Sets.difference(desiredResourceTags, previousResourceTags);
logger.log(String.format("Invoked UpdateUserHandler with user:%s", desiredStateModel.getUserArn()));
if (StringUtils.isNotEmpty(desiredStateModel.getInstanceArn()) && !desiredStateModel.getInstanceArn().equals(previousStateModel.getInstanceArn())) {
throw new CfnInvalidRequestException("InstanceArn cannot be updated.");
}
if (StringUtils.isNotEmpty(desiredStateModel.getDirectoryUserId()) && !desiredStateModel.getDirectoryUserId().equals(previousStateModel.getDirectoryUserId())) {
throw new CfnInvalidRequestException("DirectoryUserId cannot be updated.");
}
if (StringUtils.isNotEmpty(desiredStateModel.getPassword()) && !desiredStateModel.getPassword().equals(previousStateModel.getPassword())) {
throw new CfnInvalidRequestException("Password cannot be updated.");
}
if (StringUtils.isNotEmpty(desiredStateModel.getUsername()) && !desiredStateModel.getUsername().equals(previousStateModel.getUsername())) {
throw new CfnInvalidRequestException("Username cannot be updated.");
}
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress -> updateUserIdentityInfo(proxy, proxyClient, desiredStateModel, previousStateModel, progress, callbackContext, logger))
.then(progress -> updateUserPhoneConfig(proxy, proxyClient, desiredStateModel, previousStateModel, progress, callbackContext, logger))
.then(progress -> updateUserRoutingProfile(proxy, proxyClient, desiredStateModel, previousStateModel, progress, callbackContext, logger))
.then(progress -> updateUserHierarchy(proxy, proxyClient, desiredStateModel, previousStateModel, progress, callbackContext, logger))
.then(progress -> updateUserSecurityProfiles(proxy, proxyClient, desiredStateModel, previousStateModel, progress, callbackContext, logger))
.then(progress -> unTagResource(proxy, proxyClient, desiredStateModel, tagsToRemove, progress, callbackContext, logger))
.then(progress -> tagResource(proxy, proxyClient, desiredStateModel, tagsToAdd, progress, callbackContext, logger))
.then(progress -> ProgressEvent.defaultSuccessHandler(desiredStateModel));
}