packages feed

kiroku-cli-0.2.0.11: src/Kiroku/Cli/Command.hs

module Kiroku.Cli.Command
  ( KirokuCommand (..),
    OutputFormat (..),
    RemoteEndpoint (..),
    StatusOptions (..),
    SubscriptionCommand (..),
  )
where

import Data.Text (Text)

data KirokuCommand
  = KirokuNoCommand
  | KirokuSubscriptions SubscriptionCommand
  deriving stock (Eq, Show)

data SubscriptionCommand
  = SubscriptionStatus StatusOptions
  deriving stock (Eq, Show)

-- | The base URL of a running worker's @kiroku-metrics@ server (e.g.
-- @http://worker:9091@), used to query its @\/subscriptions@ endpoint.
newtype RemoteEndpoint = RemoteEndpoint Text
  deriving stock (Eq, Show)

data StatusOptions = StatusOptions
  { outputFormat :: !OutputFormat,
    -- | 'Nothing' = read the in-process registry (embeddable library); 'Just' =
    --     query a remote worker over HTTP.
    endpoint :: !(Maybe RemoteEndpoint)
  }
  deriving stock (Eq, Show)

data OutputFormat
  = OutputTable
  | OutputJson
  deriving stock (Eq, Show)