in aws-amplify-branch/src/main/java/software/amazon/amplify/branch/UpdateHandler.java [61:88]
private void updateTags(final AmazonWebServicesClientProxy proxy,
final ProxyClient<AmplifyClient> proxyClient,
final ResourceModel model,
final Map<String, String> desiredTags) {
logger.log("INFO: Modifying Tags");
final Set<Tag> finalTags = convertResourceTagsToSet(desiredTags);
final Set<Tag> existingTags = getExistingTags(proxy, proxyClient, model);
final Set<Tag> tagsToRemove = Sets.difference(existingTags, finalTags);
final Set<Tag> tagsToAdd = Sets.difference(finalTags, existingTags);
if (tagsToRemove.size() > 0) {
Collection<String> tagKeys = tagsToRemove.stream().map(Tag::getKey).collect(Collectors.toSet());
final UntagResourceRequest untagResourceRequest = UntagResourceRequest.builder().resourceArn(model.getArn())
.tagKeys(tagKeys).build();
ClientWrapper.execute(proxy, untagResourceRequest, proxyClient.client()::untagResource, ResourceModel.TYPE_NAME,
model.getAppId(), logger);
}
if (tagsToAdd.size() > 0) {
Map<String, String> tags = convertToResourceTags(tagsToAdd);
final TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
.resourceArn(model.getArn()).tags(tags).build();
ClientWrapper.execute(proxy, tagResourceRequest, proxyClient.client()::tagResource, ResourceModel.TYPE_NAME,
model.getAppId(), logger);
}
logger.log("INFO: Successfully Updated Tags");
}