public OAuth2ResourceOwnerPasswordCredentialsGrant build() {
        final Supplier<? extends Entry<String, String>> userCredentialsSupplier = this.userCredentialsSupplier;
        checkState(userCredentialsSupplier != null, "userCredentialsSupplier must be set.");
        final ClientAuthentication clientAuthentication = buildClientAuthentication();
        final Supplier<AccessTokenRequest> accessTokenRequestSupplier = () -> {
            final Entry<String, String> userCredentials = userCredentialsSupplier.get();
            requireNonNull(userCredentials, "userCredentials");
            return AccessTokenRequest.ofResourceOwnerPassword(userCredentials.getKey(),
                                                              userCredentials.getValue(),
                                                              clientAuthentication, null);
        };

        final OAuth2AuthorizationGrant delegate = delegate().accessTokenRequest(accessTokenRequestSupplier)
                                                            .build();
        return new OAuth2ResourceOwnerPasswordCredentialsGrant(delegate);
    }
Builds a new instance of {@link OAuth2ResourceOwnerPasswordCredentialsGrant} using configured parameters.
oauth2/src/main/java/com/linecorp/armeria/client/auth/oauth2/OAuth2ResourceOwnerPasswordCredentialsGrantBuilder.java