module Asana.Api.Tag ( Tag (..), ) where import Asana.Api.Gid import Asana.Api.Prelude import Data.Aeson import Data.Aeson.Casing (aesonPrefix, snakeCase) data Tag = Tag { Tag -> Gid tGid :: Gid, Tag -> Text tName :: Text } deriving stock (Tag -> Tag -> Bool (Tag -> Tag -> Bool) -> (Tag -> Tag -> Bool) -> Eq Tag forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Tag -> Tag -> Bool == :: Tag -> Tag -> Bool $c/= :: Tag -> Tag -> Bool /= :: Tag -> Tag -> Bool Eq, (forall x. Tag -> Rep Tag x) -> (forall x. Rep Tag x -> Tag) -> Generic Tag forall x. Rep Tag x -> Tag forall x. Tag -> Rep Tag x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. Tag -> Rep Tag x from :: forall x. Tag -> Rep Tag x $cto :: forall x. Rep Tag x -> Tag to :: forall x. Rep Tag x -> Tag Generic, Int -> Tag -> ShowS [Tag] -> ShowS Tag -> String (Int -> Tag -> ShowS) -> (Tag -> String) -> ([Tag] -> ShowS) -> Show Tag forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Tag -> ShowS showsPrec :: Int -> Tag -> ShowS $cshow :: Tag -> String show :: Tag -> String $cshowList :: [Tag] -> ShowS showList :: [Tag] -> ShowS Show) instance FromJSON Tag where parseJSON :: Value -> Parser Tag parseJSON = Options -> Value -> Parser Tag forall a. (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a genericParseJSON (Options -> Value -> Parser Tag) -> Options -> Value -> Parser Tag forall a b. (a -> b) -> a -> b $ ShowS -> Options aesonPrefix ShowS snakeCase