@Override
    public void configure(final Subparser subparser) {
        super.configure(subparser);

        subparser.addArgument(asArg('u', USER_ID_ARG_NAME))
                .dest(USER_ID_ARG_NAME)
                .type(String.class)
                .required(true)
                .help("The user id of the account to issue the API key against, e.g. 'admin'");

        subparser.addArgument(asArg('e', EXPIRY_DAYS_ARG_NAME))
                .dest(EXPIRY_DAYS_ARG_NAME)
                .type(Integer.class)
                .required(false)
                .help("Expiry (in days) from the creation time");

        subparser.addArgument(asArg('n', API_KEY_NAME_ARG_NAME))
                .dest(API_KEY_NAME_ARG_NAME)
                .type(String.class)
                .required(true)
                .help("The name of the API key being created");

        subparser.addArgument(asArg('o', OUTPUT_FILE_PATH_ARG_NAME))
                .dest(OUTPUT_FILE_PATH_ARG_NAME)
                .type(String.class)
                .required(false)
                .help("Path to the file where the API key will be written");

        subparser.addArgument(asArg('c', COMMENTS_ARG_NAME))
                .dest(COMMENTS_ARG_NAME)
                .type(String.class)
                .required(false)
                .help("Comments relating to this key");

        subparser.addArgument(asArg('a', HASH_ALGORITHM_ARG_NAME))
                .dest(HASH_ALGORITHM_ARG_NAME)
                .type(String.class)
                .required(false)
                .help("Hash algorithm name");
    }
Creates an API key for a user the internal identity provider
stroom-app/src/main/java/stroom/app/commands/CreateApiKeyCommand.java