module Network.Goggles ( -- * Google Cloud Storage getObject , listObjects , putObject -- ** GCP Authentication scopes , scopesDefault -- ** Running Cloud programs , evalCloudIO , liftCloudIO , createHandle -- * Types , GCP , GCPServiceAccount(..) , Cloud(..) -- ** Authentication , HasCredentials(..) , Token(..) -- , accessToken -- , refreshToken , Handle(..) -- * Private key , parseRSAPrivateKey -- * Exceptions , KeyException(..) , JWTError(..) , TokenExchangeException(..) , CloudException(..) ) where import Network.Goggles.Control.Exceptions import Network.Goggles.Cloud import Network.Goggles.Types import Network.Goggles.Auth.TokenExchange import Data.Keys -- import System.Environment (lookupEnv)