{-# LANGUAGE TemplateHaskell #-}

-- | <http://strava.github.io/api/v3/uploads/>
module Strive.Types.Uploads
  ( UploadStatus (..)
  ) where

import Data.Aeson.TH (deriveFromJSON)
import Data.Text (Text)
import Strive.Internal.TH (options)

-- | <http://strava.github.io/api/v3/uploads/#attributes>
data UploadStatus = UploadStatus
  { UploadStatus -> Maybe Integer
uploadStatus_activityId :: Maybe Integer
  , UploadStatus -> Maybe Text
uploadStatus_error      :: Maybe Text
  , UploadStatus -> Maybe Text
uploadStatus_externalId :: Maybe Text
  , UploadStatus -> Integer
uploadStatus_id         :: Integer
  , UploadStatus -> Text
uploadStatus_status     :: Text
  } deriving Int -> UploadStatus -> ShowS
[UploadStatus] -> ShowS
UploadStatus -> String
(Int -> UploadStatus -> ShowS)
-> (UploadStatus -> String)
-> ([UploadStatus] -> ShowS)
-> Show UploadStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UploadStatus] -> ShowS
$cshowList :: [UploadStatus] -> ShowS
show :: UploadStatus -> String
$cshow :: UploadStatus -> String
showsPrec :: Int -> UploadStatus -> ShowS
$cshowsPrec :: Int -> UploadStatus -> ShowS
Show

$(deriveFromJSON options ''UploadStatus)