@Override
    public SecurityScheme createSecurityScheme(Context<? extends Trait> context, HttpApiKeyAuthTrait trait) {
        StringBuilder description = new StringBuilder()
                .append("API key authentication via the '")
                .append(trait.getName())
                .append("' ");

        if (trait.getIn().equals(HttpApiKeyAuthTrait.Location.QUERY)) {
            description.append(" query string parameter");
        } else {
            description.append(trait.getIn());
        }

        if (trait.getScheme().isPresent()) {
            return SecurityScheme.builder()
                    .type("http")
                    .scheme(trait.getScheme().get())
                    .name(trait.getName())
                    .in(trait.getIn().toString())
                    .description(description.toString())
                    .build();
        }

        return SecurityScheme.builder()
                .type("apiKey")
                .name(trait.getName())
                .in(trait.getIn().toString())
                .description(description.toString())
                .build();
    }
Uses an HTTP header named X-Api-Key that contains an API key.

<p>This is compatible with Amazon API Gateway API key authorization.

@see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-key-source.html">API Gateway documentation</a>
smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy/security/HttpApiKeyAuthConverter.java