@Override
    public ObjectNode updateNode(Context context, ResourceSchema resourceSchema, ObjectNode node) {
        ShapeId resourceShapeId = context.getResource().getId();
        Map<ShapeId, Map<String, Node>> add = context.getConfig().getJsonAdd();

        // Short circuit if we don't have anything to add for this resource.
        if (add.isEmpty() || !add.containsKey(resourceShapeId)) {
            return node;
        }

        // Apply the set of pointers for this resource.
        ObjectNode result = node;
        for (Map.Entry<String, Node> entry : add.get(resourceShapeId).entrySet()) {
            try {
                LOGGER.info(() -> String.format("CloudFormation `jsonAdd` for `%s`: adding `%s`",
                        resourceShapeId,
                        entry.getKey()));
                result = NodePointer.parse(entry.getKey())
                        .addWithIntermediateValues(result, entry.getValue().toNode())
                        .expectObjectNode();
            } catch (IllegalArgumentException e) {
                throw new CfnException(e.getMessage(), e);
            }
        }

        return result;
    }
Adds JSON values into the generated CloudFormation resource schemas using
a JSON Patch like "add" operation that also generated intermediate objects
as needed. Any existing property is overwritten.
smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/fromsmithy/mappers/JsonAddMapper.java