in aws-connect-user/src/main/java/software/amazon/connect/user/UpdateHandler.java [113:141]
private ProgressEvent<ResourceModel, CallbackContext> updateUserPhoneConfig(final AmazonWebServicesClientProxy proxy,
final ProxyClient<ConnectClient> proxyClient,
final ResourceModel desiredStateModel,
final ResourceModel previousStateModel,
final ProgressEvent<ResourceModel, CallbackContext> progress,
final CallbackContext context,
final Logger logger) {
requireNotNull(desiredStateModel.getPhoneConfig() , USER_PHONE_CONFIG);
final int desiredAfterContactWorkTimeLimit = desiredStateModel.getPhoneConfig().getAfterContactWorkTimeLimit() == null ? 0 : desiredStateModel.getPhoneConfig().getAfterContactWorkTimeLimit();
final int previousAfterContactWorkTimeLimit = previousStateModel.getPhoneConfig().getAfterContactWorkTimeLimit() == null ? 0 : previousStateModel.getPhoneConfig().getAfterContactWorkTimeLimit();
final boolean afterContactWorkTimeLimit = desiredAfterContactWorkTimeLimit != previousAfterContactWorkTimeLimit;
final boolean autoAccept = desiredStateModel.getPhoneConfig().getAutoAccept() != previousStateModel.getPhoneConfig().getAutoAccept();
final boolean deskPhoneNumber = !StringUtils.equals(desiredStateModel.getPhoneConfig().getDeskPhoneNumber(), previousStateModel.getPhoneConfig().getDeskPhoneNumber());
final boolean phoneType = !StringUtils.equals(desiredStateModel.getPhoneConfig().getPhoneType(), previousStateModel.getPhoneConfig().getPhoneType());
if (afterContactWorkTimeLimit || autoAccept || deskPhoneNumber || phoneType) {
logger.log(String.format("Calling UpdateUserPhoneConfig API for user:%s", desiredStateModel.getUserArn()));
return proxy.initiate("connect::updateUserPhoneConfig", proxyClient, desiredStateModel, context)
.translateToServiceRequest(UpdateHandler::translateToUpdateUserPhoneConfigRequest)
.makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateUserPhoneConfig, logger))
.progress();
} else {
logger.log(String.format("User afterContactWorkTimeLimit, autoAccept, deskPhoneNumber and phoneType fields are unchanged in the update operation, " +
"skipping updateUserPhoneConfig API call for user:%s", desiredStateModel.getUserArn()));
return progress;
}
}