44 inline static const std::string kAuthType =
"rest.auth.type";
45 inline static const std::string kAuthTypeNone =
"none";
46 inline static const std::string kAuthTypeBasic =
"basic";
47 inline static const std::string kAuthTypeOAuth2 =
"oauth2";
48 inline static const std::string kAuthTypeSigV4 =
"sigv4";
52 inline static const std::string kBasicUsername =
"rest.auth.basic.username";
53 inline static const std::string kBasicPassword =
"rest.auth.basic.password";
59 inline static const std::string kSigV4Enabled =
"rest.sigv4-enabled";
60 inline static const std::string kSigV4DelegateAuthType =
61 "rest.auth.sigv4.delegate-auth-type";
66 inline static const std::string kSigV4SigningRegion =
"rest.signing-region";
67 inline static const std::string kSigV4SigningName =
"rest.signing-name";
68 inline static const std::string kSigV4SigningNameDefault =
"execute-api";
69 inline static const std::string kSigV4AccessKeyId =
"rest.access-key-id";
70 inline static const std::string kSigV4SecretAccessKey =
"rest.secret-access-key";
71 inline static const std::string kSigV4SessionToken =
"rest.session-token";
75 inline static Entry<std::string> kToken{
"token",
""};
76 inline static Entry<std::string> kCredential{
"credential",
""};
77 inline static Entry<std::string> kScope{
"scope",
"catalog"};
78 inline static Entry<std::string> kOAuth2ServerUri{
"oauth2-server-uri",
80 inline static Entry<bool> kKeepRefreshed{
"token-refresh-enabled",
true};
81 inline static Entry<bool> kExchangeEnabled{
"token-exchange-enabled",
true};
82 inline static Entry<std::string> kAudience{
"audience",
""};
83 inline static Entry<std::string> kResource{
"resource",
""};
86 static Result<AuthProperties> FromProperties(
87 const std::unordered_map<std::string, std::string>& properties);
90 std::string
token()
const {
return Get(kToken); }
92 std::string
credential()
const {
return Get(kCredential); }
94 std::string
scope()
const {
return Get(kScope); }
103 const std::string&
client_id()
const {
return client_id_; }
108 std::unordered_map<std::string, std::string> optional_oauth_params()
const;
111 std::string client_id_;
112 std::string client_secret_;
113 std::string token_type_;
114 std::optional<int64_t> expires_at_millis_;