{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.GroupsMigration.Types.Product where
import Network.Google.GroupsMigration.Types.Sum
import Network.Google.Prelude
data Groups = Groups'
{ _gKind :: !Text
, _gResponseCode :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
groups
:: Groups
groups =
Groups'
{ _gKind = "groupsmigration#groups"
, _gResponseCode = Nothing
}
gKind :: Lens' Groups Text
gKind = lens _gKind (\ s a -> s{_gKind = a})
gResponseCode :: Lens' Groups (Maybe Text)
gResponseCode
= lens _gResponseCode
(\ s a -> s{_gResponseCode = a})
instance FromJSON Groups where
parseJSON
= withObject "Groups"
(\ o ->
Groups' <$>
(o .:? "kind" .!= "groupsmigration#groups") <*>
(o .:? "responseCode"))
instance ToJSON Groups where
toJSON Groups'{..}
= object
(catMaybes
[Just ("kind" .= _gKind),
("responseCode" .=) <$> _gResponseCode])