@Override
        public Trait createTrait(ShapeId target, Node value) {
            ObjectNode objectNode = value.expectObjectNode();
            Builder builder = builder().sourceLocation(value);
            builder.requestChecksumRequired(objectNode.getBooleanMemberOrDefault(REQUEST_CHECKSUM_REQUIRED));

            objectNode.getStringMember(REQUEST_ALGORITHM_MEMBER)
                    .map(StringNode::getValue)
                    .ifPresent(builder::requestAlgorithmMember);

            objectNode.getArrayMember(RESPONSE_ALGORITHMS).ifPresent(responseAlgorithmNodes -> {
                for (String algorithm : responseAlgorithmNodes.getElementsAs(StringNode::getValue)) {
                    builder.addResponseAlgorithm(algorithm);
                }
            });

            objectNode.getStringMember(REQUEST_VALIDATION_MODE_MEMBER)
                    .map(StringNode::getValue)
                    .ifPresent(builder::requestValidationModeMember);

            HttpChecksumTrait result = builder.build();
            result.setNodeCache(value);
            return result;
        }
Gets the normalized location name for a checksum algorithm.

@param checksumAlgorithm The algorithm to get a location name of.
@return The normalized location name.
smithy-aws-traits/src/main/java/software/amazon/smithy/aws/traits/HttpChecksumTrait.java