22#include <pulsar/defines.h>
28typedef struct _pulsar_authentication pulsar_authentication_t;
30typedef char *(*token_supplier)(
void *);
32PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_create(
const char *dynamicLibPath,
33 const char *authParamsString);
35PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_tls_create(
const char *certificatePath,
36 const char *privateKeyPath);
38PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create(
const char *token);
39PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_token_create_with_supplier(
40 token_supplier tokenSupplier,
void *ctx);
42PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_basic_create(
const char *username,
43 const char *password);
45PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_athenz_create(
const char *authParamsString);
47PULSAR_PUBLIC pulsar_authentication_t *pulsar_authentication_oauth2_create(
const char *authParamsString);
49PULSAR_PUBLIC
void pulsar_authentication_free(pulsar_authentication_t *authentication);