module Network.Livy
  ( -- * Running Livy actions
    Livy
  , LivyT (..)
  , runLivy
  , runLivyT
  , send

    -- * Environment
  , Env (..)
  , HasEnv (..)
  , newEnv

    -- * Request/response
  , LivyRequest (..)
  , LivyResponse

    -- * Livy actions
  , module Network.Livy.Client.Batch
  , module Network.Livy.Client.Interactive

    -- * REST objects
    -- ** Batch session
  , Batch (..)
  , BatchId (..)
  , BatchState (..)
  , BatchAppInfo
    -- *** Lenses
  , bId, bAppId, bAppInfo, bLog, bState
    -- ** Interactive session
  , Session (..)
  , SessionId (..)
  , SessionKind (..)
  , SessionState (..)
  , SessionAppInfo
    -- *** Lenses
  , sId, sAppId, sOwner, sProxyUser, sKind, sLog, sState, sAppInfo
    -- ** Statements for interactive sessions
  , Statement (..)
  , StatementId (..)
  , StatementState (..)
  , StatementOutput (..)
  , StatementData
    -- *** Lenses
  , stoStatus, stoExecutionCount, stoData, stId, stCode, stState, stOutput

    -- * Exceptions
  , LivyError (..)
  , LivyErrorType (..)
  , LivyHTTPErrorCode (..)

    -- * Misc.
  , APIVersion (..)
  ) where


import Network.Livy.Env
import Network.Livy.Monad
import Network.Livy.Response
import Network.Livy.Types

import Network.Livy.Client.Types.Batch
import Network.Livy.Client.Types.Session
import Network.Livy.Client.Types.Statement

import Network.Livy.Client.Batch
import Network.Livy.Client.Interactive


data APIVersion = V050Incubating -- ^ The version of Livy for this package release.

instance Show APIVersion where
  show V050Incubating = "0.5.0-incubating"