module TD.Query.GetAuthorizationState
  (GetAuthorizationState(..)
  ) where

import qualified Data.Aeson as A
import qualified Data.Aeson.Types as AT
import qualified TD.Lib.Internal as I

-- | Returns the current authorization state. This is an offline method. For informational purposes only. Use updateAuthorizationState instead to maintain the current authorization state. Can be called before initialization. Returns 'TD.Data.AuthorizationState.AuthorizationState'
data GetAuthorizationState
  = GetAuthorizationState
  deriving (GetAuthorizationState -> GetAuthorizationState -> Bool
(GetAuthorizationState -> GetAuthorizationState -> Bool)
-> (GetAuthorizationState -> GetAuthorizationState -> Bool)
-> Eq GetAuthorizationState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GetAuthorizationState -> GetAuthorizationState -> Bool
== :: GetAuthorizationState -> GetAuthorizationState -> Bool
$c/= :: GetAuthorizationState -> GetAuthorizationState -> Bool
/= :: GetAuthorizationState -> GetAuthorizationState -> Bool
Eq, Int -> GetAuthorizationState -> ShowS
[GetAuthorizationState] -> ShowS
GetAuthorizationState -> String
(Int -> GetAuthorizationState -> ShowS)
-> (GetAuthorizationState -> String)
-> ([GetAuthorizationState] -> ShowS)
-> Show GetAuthorizationState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GetAuthorizationState -> ShowS
showsPrec :: Int -> GetAuthorizationState -> ShowS
$cshow :: GetAuthorizationState -> String
show :: GetAuthorizationState -> String
$cshowList :: [GetAuthorizationState] -> ShowS
showList :: [GetAuthorizationState] -> ShowS
Show)

instance I.ShortShow GetAuthorizationState where
  shortShow :: GetAuthorizationState -> String
shortShow
    GetAuthorizationState
GetAuthorizationState
        = String
"GetAuthorizationState"

instance AT.ToJSON GetAuthorizationState where
  toJSON :: GetAuthorizationState -> Value
toJSON
    GetAuthorizationState
GetAuthorizationState
        = [Pair] -> Value
A.object
          [ Key
"@type" Key -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
A..= Text -> Value
AT.String Text
"getAuthorizationState"
          ]