{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module Kubernetes.Client.Auth.Token where
import Kubernetes.Client.Auth.Internal.Types
import Kubernetes.Client.KubeConfig ( AuthInfo(..) )
import Kubernetes.OpenAPI.Core ( AnyAuthMethod(..)
, KubernetesClientConfig(..)
)
import Kubernetes.OpenAPI.Model ( AuthApiKeyBearerToken(..) )
import qualified Data.Text as T
#if !MIN_VERSION_base(4,11,0)
import Data.Monoid ( (<>) )
#endif
tokenAuth :: DetectAuth
tokenAuth :: DetectAuth
tokenAuth AuthInfo
auth (ClientParams
tlsParams, KubernetesClientConfig
cfg) = do
Text
t <- AuthInfo -> Maybe Text
token AuthInfo
auth
IO (ClientParams, KubernetesClientConfig)
-> Maybe (IO (ClientParams, KubernetesClientConfig))
forall a. a -> Maybe a
forall (m :: * -> *) a. Monad m => a -> m a
return (IO (ClientParams, KubernetesClientConfig)
-> Maybe (IO (ClientParams, KubernetesClientConfig)))
-> IO (ClientParams, KubernetesClientConfig)
-> Maybe (IO (ClientParams, KubernetesClientConfig))
forall a b. (a -> b) -> a -> b
$ (ClientParams, KubernetesClientConfig)
-> IO (ClientParams, KubernetesClientConfig)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (ClientParams
tlsParams, Text -> KubernetesClientConfig -> KubernetesClientConfig
setTokenAuth Text
t KubernetesClientConfig
cfg)
setTokenAuth
:: T.Text
-> KubernetesClientConfig
-> KubernetesClientConfig
setTokenAuth :: Text -> KubernetesClientConfig -> KubernetesClientConfig
setTokenAuth Text
t KubernetesClientConfig
kcfg = KubernetesClientConfig
kcfg
{ configAuthMethods = [AnyAuthMethod (AuthApiKeyBearerToken $ "Bearer " <> t)]
}