{-# 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.Billing.Types.Product where
import Network.Google.Billing.Types.Sum
import Network.Google.Prelude
data BillingAccount = BillingAccount'
{ _baOpen :: !(Maybe Bool)
, _baName :: !(Maybe Text)
, _baDisplayName :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
billingAccount
:: BillingAccount
billingAccount =
BillingAccount'
{ _baOpen = Nothing
, _baName = Nothing
, _baDisplayName = Nothing
}
baOpen :: Lens' BillingAccount (Maybe Bool)
baOpen = lens _baOpen (\ s a -> s{_baOpen = a})
baName :: Lens' BillingAccount (Maybe Text)
baName = lens _baName (\ s a -> s{_baName = a})
baDisplayName :: Lens' BillingAccount (Maybe Text)
baDisplayName
= lens _baDisplayName
(\ s a -> s{_baDisplayName = a})
instance FromJSON BillingAccount where
parseJSON
= withObject "BillingAccount"
(\ o ->
BillingAccount' <$>
(o .:? "open") <*> (o .:? "name") <*>
(o .:? "displayName"))
instance ToJSON BillingAccount where
toJSON BillingAccount'{..}
= object
(catMaybes
[("open" .=) <$> _baOpen, ("name" .=) <$> _baName,
("displayName" .=) <$> _baDisplayName])
data ProjectBillingInfo = ProjectBillingInfo'
{ _pbiName :: !(Maybe Text)
, _pbiBillingAccountName :: !(Maybe Text)
, _pbiProjectId :: !(Maybe Text)
, _pbiBillingEnabled :: !(Maybe Bool)
} deriving (Eq,Show,Data,Typeable,Generic)
projectBillingInfo
:: ProjectBillingInfo
projectBillingInfo =
ProjectBillingInfo'
{ _pbiName = Nothing
, _pbiBillingAccountName = Nothing
, _pbiProjectId = Nothing
, _pbiBillingEnabled = Nothing
}
pbiName :: Lens' ProjectBillingInfo (Maybe Text)
pbiName = lens _pbiName (\ s a -> s{_pbiName = a})
pbiBillingAccountName :: Lens' ProjectBillingInfo (Maybe Text)
pbiBillingAccountName
= lens _pbiBillingAccountName
(\ s a -> s{_pbiBillingAccountName = a})
pbiProjectId :: Lens' ProjectBillingInfo (Maybe Text)
pbiProjectId
= lens _pbiProjectId (\ s a -> s{_pbiProjectId = a})
pbiBillingEnabled :: Lens' ProjectBillingInfo (Maybe Bool)
pbiBillingEnabled
= lens _pbiBillingEnabled
(\ s a -> s{_pbiBillingEnabled = a})
instance FromJSON ProjectBillingInfo where
parseJSON
= withObject "ProjectBillingInfo"
(\ o ->
ProjectBillingInfo' <$>
(o .:? "name") <*> (o .:? "billingAccountName") <*>
(o .:? "projectId")
<*> (o .:? "billingEnabled"))
instance ToJSON ProjectBillingInfo where
toJSON ProjectBillingInfo'{..}
= object
(catMaybes
[("name" .=) <$> _pbiName,
("billingAccountName" .=) <$> _pbiBillingAccountName,
("projectId" .=) <$> _pbiProjectId,
("billingEnabled" .=) <$> _pbiBillingEnabled])
data ListProjectBillingInfoResponse = ListProjectBillingInfoResponse'
{ _lpbirNextPageToken :: !(Maybe Text)
, _lpbirProjectBillingInfo :: !(Maybe [ProjectBillingInfo])
} deriving (Eq,Show,Data,Typeable,Generic)
listProjectBillingInfoResponse
:: ListProjectBillingInfoResponse
listProjectBillingInfoResponse =
ListProjectBillingInfoResponse'
{ _lpbirNextPageToken = Nothing
, _lpbirProjectBillingInfo = Nothing
}
lpbirNextPageToken :: Lens' ListProjectBillingInfoResponse (Maybe Text)
lpbirNextPageToken
= lens _lpbirNextPageToken
(\ s a -> s{_lpbirNextPageToken = a})
lpbirProjectBillingInfo :: Lens' ListProjectBillingInfoResponse [ProjectBillingInfo]
lpbirProjectBillingInfo
= lens _lpbirProjectBillingInfo
(\ s a -> s{_lpbirProjectBillingInfo = a})
. _Default
. _Coerce
instance FromJSON ListProjectBillingInfoResponse
where
parseJSON
= withObject "ListProjectBillingInfoResponse"
(\ o ->
ListProjectBillingInfoResponse' <$>
(o .:? "nextPageToken") <*>
(o .:? "projectBillingInfo" .!= mempty))
instance ToJSON ListProjectBillingInfoResponse where
toJSON ListProjectBillingInfoResponse'{..}
= object
(catMaybes
[("nextPageToken" .=) <$> _lpbirNextPageToken,
("projectBillingInfo" .=) <$>
_lpbirProjectBillingInfo])
data ListBillingAccountsResponse = ListBillingAccountsResponse'
{ _lbarNextPageToken :: !(Maybe Text)
, _lbarBillingAccounts :: !(Maybe [BillingAccount])
} deriving (Eq,Show,Data,Typeable,Generic)
listBillingAccountsResponse
:: ListBillingAccountsResponse
listBillingAccountsResponse =
ListBillingAccountsResponse'
{ _lbarNextPageToken = Nothing
, _lbarBillingAccounts = Nothing
}
lbarNextPageToken :: Lens' ListBillingAccountsResponse (Maybe Text)
lbarNextPageToken
= lens _lbarNextPageToken
(\ s a -> s{_lbarNextPageToken = a})
lbarBillingAccounts :: Lens' ListBillingAccountsResponse [BillingAccount]
lbarBillingAccounts
= lens _lbarBillingAccounts
(\ s a -> s{_lbarBillingAccounts = a})
. _Default
. _Coerce
instance FromJSON ListBillingAccountsResponse where
parseJSON
= withObject "ListBillingAccountsResponse"
(\ o ->
ListBillingAccountsResponse' <$>
(o .:? "nextPageToken") <*>
(o .:? "billingAccounts" .!= mempty))
instance ToJSON ListBillingAccountsResponse where
toJSON ListBillingAccountsResponse'{..}
= object
(catMaybes
[("nextPageToken" .=) <$> _lbarNextPageToken,
("billingAccounts" .=) <$> _lbarBillingAccounts])