@Override
    public SecurityScheme createSecurityScheme(Context<? extends Trait> context, CognitoUserPoolsTrait trait) {
        return SecurityScheme.builder()
                .type("apiKey")
                .description("Amazon Cognito User Pools authentication")
                .name(AUTH_HEADER)
                .in("header")
                .putExtension("x-amazon-apigateway-authtype", Node.from(AUTH_TYPE))
                .putExtension("x-amazon-apigateway-authorizer",
                        Node.objectNode()
                                .withMember("type", Node.from(AUTH_TYPE))
                                .withMember(PROVIDER_ARNS_PROPERTY,
                                        trait.getProviderArns().stream().map(Node::from).collect(ArrayNode.collect())))
                .build();
    }
An authentication scheme converter that adds Cognito User Pool based
authentication ({@code cognito_user_pools} to an OpenAPI model when the
{@code aws.auth#cognitoUserPools} authentication scheme is found on
a service shape.

@see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-enable-cognito-user-pool.html">Integrate a REST API with a User Pool </a>
smithy-aws-apigateway-openapi/src/main/java/software/amazon/smithy/aws/apigateway/openapi/CognitoUserPoolsConverter.java