in aws-connect-quickconnect/src/main/java/software/amazon/connect/quickconnect/UpdateHandler.java [100:148]
private ProgressEvent<ResourceModel, CallbackContext> updateQuickConnectConfig(final AmazonWebServicesClientProxy proxy,
final ProxyClient<ConnectClient> proxyClient,
final ResourceModel desiredStateModel,
final ResourceModel previousStateModel,
final ProgressEvent<ResourceModel, CallbackContext> progress,
final CallbackContext context,
final Logger logger) {
if (!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQuickConnectType(), previousStateModel.getQuickConnectConfig().getQuickConnectType())) {
logger.log(String.format("QuickConnectType:%s has changed from current type:%s in update operation, " +
"Calling UpdateQuickConnectConfig API for QuickConnect:%s", desiredStateModel.getQuickConnectConfig().getQuickConnectType(),
previousStateModel.getQuickConnectConfig().getQuickConnectType(), desiredStateModel.getQuickConnectArn()));
return proxy.initiate("connect::updateQuickConnectConfig", proxyClient, desiredStateModel, context)
.translateToServiceRequest(UpdateHandler::translateToUpdateQuickConnectConfigRequest)
.makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateQuickConnectConfig, logger))
.progress();
} else if (StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQuickConnectType(), QuickConnectType.USER.toString())) {
if (!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getUserConfig().getContactFlowArn(), previousStateModel.getQuickConnectConfig().getUserConfig().getContactFlowArn()) ||
!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getUserConfig().getUserArn(), previousStateModel.getQuickConnectConfig().getUserConfig().getUserArn())) {
logger.log(String.format("QuickConnectType:USER is unchanged in update operation but the UserConfig properties " +
"have changed, Calling UpdateQuickConnectConfig API for QuickConnect:%s", desiredStateModel.getQuickConnectArn()));
return proxy.initiate("connect::updateQuickConnectConfig", proxyClient, desiredStateModel, context)
.translateToServiceRequest(UpdateHandler::translateToUpdateQuickConnectConfigRequest)
.makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateQuickConnectConfig, logger))
.progress();
}
} else if (StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQuickConnectType(), QuickConnectType.QUEUE.toString())) {
if (!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQueueConfig().getContactFlowArn(), previousStateModel.getQuickConnectConfig().getQueueConfig().getContactFlowArn()) ||
!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQueueConfig().getQueueArn(), previousStateModel.getQuickConnectConfig().getQueueConfig().getQueueArn())) {
logger.log(String.format("QuickConnectType:QUEUE is unchanged in update operation but the QueueConfig properties " +
"have changed, Calling UpdateQuickConnectConfig API for QuickConnect:%s", desiredStateModel.getQuickConnectArn()));
return proxy.initiate("connect::updateQuickConnectConfig", proxyClient, desiredStateModel, context)
.translateToServiceRequest(UpdateHandler::translateToUpdateQuickConnectConfigRequest)
.makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateQuickConnectConfig, logger))
.progress();
}
} else if (StringUtils.equals(desiredStateModel.getQuickConnectConfig().getQuickConnectType(), QuickConnectType.PHONE_NUMBER.toString())) {
if (!StringUtils.equals(desiredStateModel.getQuickConnectConfig().getPhoneConfig().getPhoneNumber(), previousStateModel.getQuickConnectConfig().getPhoneConfig().getPhoneNumber())) {
logger.log(String.format("QuickConnectType:PHONE_NUMBER is unchanged in update operation but the PhoneConfig properties " +
"have changed, Calling UpdateQuickConnectConfig API for QuickConnect:%s", desiredStateModel.getQuickConnectArn()));
return proxy.initiate("connect::updateQuickConnectConfig", proxyClient, desiredStateModel, context)
.translateToServiceRequest(UpdateHandler::translateToUpdateQuickConnectConfigRequest)
.makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateQuickConnectConfig, logger))
.progress();
}
}
logger.log(String.format("QuickConnectConfig is unchanged in the update operation, skipping " +
"UpdateQuickConnectConfig API call for QuickConnect:%s", desiredStateModel.getQuickConnectArn()));
return progress;
}