packages feed

patrol-0.1.0.1: source/library/Patrol/Type/SpanStatus.hs

module Patrol.Type.SpanStatus where

import qualified Data.Aeson as Aeson

-- | <https://develop.sentry.dev/sdk/event-payloads/types/#spanstatus>
data SpanStatus
  = Aborted
  | AlreadyExists
  | Cancelled
  | DataLoss
  | DeadlineExceeded
  | FailedPrecondition
  | InternalError
  | InvalidArgument
  | NotFound
  | Ok
  | OutOfRange
  | PermissionDenied
  | ResourceExhausted
  | Unauthenticated
  | Unavailable
  | Unimplemented
  | Unknown
  deriving (Eq, Show)

instance Aeson.ToJSON SpanStatus where
  toJSON spanStatus = Aeson.toJSON $ case spanStatus of
    Aborted -> "aborted"
    AlreadyExists -> "already_exists"
    Cancelled -> "cancelled"
    DataLoss -> "data_loss"
    DeadlineExceeded -> "deadline_exceeded"
    FailedPrecondition -> "failed_precondition"
    InternalError -> "internal_error"
    InvalidArgument -> "invalid_argument"
    NotFound -> "not_found"
    Ok -> "ok"
    OutOfRange -> "out_of_range"
    PermissionDenied -> "permission_denied"
    ResourceExhausted -> "resource_exhausted"
    Unauthenticated -> "unauthenticated"
    Unavailable -> "unavailable"
    Unimplemented -> "unimplemented"
    Unknown -> "unknown"