@Override
    public Node toNode() {
        ObjectNode.Builder node = super.toNode().expectObjectNode().toBuilder();
        node.withMember(METHOD, getMethod());
        node.withMember(URI, getUri());
        node.withOptionalMember(HOST, getHost().map(StringNode::from));
        node.withOptionalMember(RESOLVED_HOST, getResolvedHost().map(StringNode::from));
        if (!queryParams.isEmpty()) {
            node.withMember(QUERY_PARAMS, ArrayNode.fromStrings(getQueryParams()));
        }
        if (!forbidQueryParams.isEmpty()) {
            node.withMember(FORBID_QUERY_PARAMS, ArrayNode.fromStrings(getForbidQueryParams()));
        }
        if (!requireQueryParams.isEmpty()) {
            node.withMember(REQUIRE_QUERY_PARAMS, ArrayNode.fromStrings(getRequireQueryParams()));
        }
        return node.build();
    }
Defines a test case for an HTTP request.
smithy-protocol-test-traits/src/main/java/software/amazon/smithy/protocoltests/traits/HttpRequestTestCase.java