packages feed

gogol-affiliates (empty) → 0.0.1

raw patch · 18 files changed

+6511/−0 lines, 18 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-affiliates++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Affiliate Network.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-affiliates` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/Affiliates.hs view
@@ -0,0 +1,410 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Affiliates+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lets you have programmatic access to your Google Affiliate Network data.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference>+module Network.Google.Affiliates+    (+    -- * Service Configuration+      affiliatesService++    -- * API Declaration+    , AffiliatesAPI++    -- * Resources++    -- ** gan.advertisers.get+    , module Network.Google.Resource.GAN.Advertisers.Get++    -- ** gan.advertisers.list+    , module Network.Google.Resource.GAN.Advertisers.List++    -- ** gan.ccOffers.list+    , module Network.Google.Resource.GAN.CcOffers.List++    -- ** gan.events.list+    , module Network.Google.Resource.GAN.Events.List++    -- ** gan.links.get+    , module Network.Google.Resource.GAN.Links.Get++    -- ** gan.links.insert+    , module Network.Google.Resource.GAN.Links.Insert++    -- ** gan.links.list+    , module Network.Google.Resource.GAN.Links.List++    -- ** gan.publishers.get+    , module Network.Google.Resource.GAN.Publishers.Get++    -- ** gan.publishers.list+    , module Network.Google.Resource.GAN.Publishers.List++    -- ** gan.reports.get+    , module Network.Google.Resource.GAN.Reports.Get++    -- * Types++    -- ** Event+    , Event+    , event+    , eModifyDate+    , eStatus+    , eCommissionableSales+    , eChargeId+    , eAdvertiserName+    , eChargeType+    , eMemberId+    , eKind+    , eNetworkFee+    , eAdvertiserId+    , eEventDate+    , eProducts+    , ePublisherFee+    , eType+    , eOrderId+    , ePublisherId+    , eEarnings+    , ePublisherName++    -- ** PublishersGetRole+    , PublishersGetRole (..)++    -- ** ReportsGetEventType+    , ReportsGetEventType (..)++    -- ** ReportsGetStatus+    , ReportsGetStatus (..)++    -- ** LinksListPromotionType+    , LinksListPromotionType (..)++    -- ** EventsListType+    , EventsListType (..)++    -- ** LinksListRole+    , LinksListRole (..)++    -- ** ReportsGetReportType+    , ReportsGetReportType (..)++    -- ** AdvertisersListRole+    , AdvertisersListRole (..)++    -- ** Money+    , Money+    , money+    , mAmount+    , mCurrencyCode++    -- ** Link+    , Link+    , link+    , lAuthorship+    , lDestinationURL+    , lClickTrackingURL+    , lCreateDate+    , lKind+    , lAdvertiserId+    , lEndDate+    , lImageAltText+    , lPromotionType+    , lAvailability+    , lStartDate+    , lName+    , lImpressionTrackingURL+    , lSpecialOffers+    , lEpcSevenDayAverage+    , lId+    , lEpcNinetyDayAverage+    , lLinkType+    , lIsActive+    , lDuration+    , lDescription++    -- ** LinksInsertRole+    , LinksInsertRole (..)++    -- ** CcOffers+    , CcOffers+    , ccOffers+    , coKind+    , coItems++    -- ** PublishersListRole+    , PublishersListRole (..)++    -- ** CcOfferDefaultFeesItem+    , CcOfferDefaultFeesItem+    , ccOfferDefaultFeesItem+    , codfiRateType+    , codfiMinRate+    , codfiCategory+    , codfiMaxRate++    -- ** Report+    , Report+    , report+    , rEndDate+    , rTotalsRows+    , rKind+    , rStartDate+    , rRows+    , rMatchingRowCount+    , rColumnNames+    , rType++    -- ** LinksListAuthorship+    , LinksListAuthorship (..)++    -- ** Advertisers+    , Advertisers+    , advertisers+    , aNextPageToken+    , aKind+    , aItems++    -- ** LinksGetRole+    , LinksGetRole (..)++    -- ** LinksListLinkType+    , LinksListLinkType (..)++    -- ** EventsListRole+    , EventsListRole (..)++    -- ** EventProductsItem+    , EventProductsItem+    , eventProductsItem+    , epiSKUName+    , epiNetworkFee+    , epiQuantity+    , epiCategoryName+    , epiCategoryId+    , epiSKU+    , epiPublisherFee+    , epiUnitPrice+    , epiEarnings++    -- ** AdvertisersListRelationshipStatus+    , AdvertisersListRelationshipStatus (..)++    -- ** CcOffersListProjection+    , CcOffersListProjection (..)++    -- ** CcOfferBonusRewardsItem+    , CcOfferBonusRewardsItem+    , ccOfferBonusRewardsItem+    , cobriAmount+    , cobriDetails++    -- ** AdvertisersGetRole+    , AdvertisersGetRole (..)++    -- ** EventsListChargeType+    , EventsListChargeType (..)++    -- ** PublishersListRelationshipStatus+    , PublishersListRelationshipStatus (..)++    -- ** ReportsGetRole+    , ReportsGetRole (..)++    -- ** Events+    , Events+    , events+    , eveNextPageToken+    , eveKind+    , eveItems++    -- ** LinkSpecialOffers+    , LinkSpecialOffers+    , linkSpecialOffers+    , lsoFreeShippingMin+    , lsoPercentOff+    , lsoPriceCut+    , lsoPriceCutMin+    , lsoPercentOffMin+    , lsoFreeShipping+    , lsoPromotionCodes+    , lsoFreeGift++    -- ** Publishers+    , Publishers+    , publishers+    , pNextPageToken+    , pKind+    , pItems++    -- ** Advertiser+    , Advertiser+    , advertiser+    , advAllowPublisherCreatedLinks+    , advContactPhone+    , advContactEmail+    , advStatus+    , advLogoURL+    , advKind+    , advCategory+    , advSiteURL+    , advPayoutRank+    , advJoinDate+    , advDefaultLinkId+    , advRedirectDomains+    , advName+    , advProductFeedsEnabled+    , advMerchantCenterIds+    , advEpcSevenDayAverage+    , advItem+    , advId+    , advEpcNinetyDayAverage+    , advCommissionDuration+    , advDescription++    -- ** CcOffer+    , CcOffer+    , ccOffer+    , cMinimumFinanceCharge+    , cTrackingURL+    , cProhibitedCategories+    , cBalanceComputationMethod+    , cInitialSetupAndProcessingFee+    , cReturnedPaymentFee+    , cAgeMinimumDetails+    , cVariableRatesUpdateFrequency+    , cCreditLimitMin+    , cTravelInsurance+    , cApprovedCategories+    , cAnnualFeeDisplay+    , cOverLimitFee+    , cMaxPurchaseRate+    , cAgeMinimum+    , cVariableRatesLastUpdated+    , cIntroCashAdvanceTerms+    , cIssuerWebsite+    , cLuggageInsurance+    , cKind+    , cRewardsHaveBlackoutDates+    , cDisclaimer+    , cAdditionalCardHolderFee+    , cExistingCustomerOnly+    , cEmergencyInsurance+    , cNetwork+    , cCashAdvanceTerms+    , cStatementCopyFee+    , cAprDisplay+    , cOffersImmediateCashReward+    , cRewards+    , cCardType+    , cImageURL+    , cCreditLimitMax+    , cLandingPageURL+    , cAnnualFee+    , cRewardsExpire+    , cFirstYearAnnualFee+    , cCarRentalInsurance+    , cPurchaseRateAdditionalDetails+    , cOfferId+    , cGracePeriodDisplay+    , cIntroPurchaseTerms+    , cCreditRatingDisplay+    , cBalanceTransferTerms+    , cLatePaymentFee+    , cCardBenefits+    , cIssuer+    , cCardName+    , cMinPurchaseRate+    , cFraudLiability+    , cForeignCurrencyTransactionFee+    , cExtendedWarranty+    , cAnnualRewardMaximum+    , cIssuerId+    , cIntroBalanceTransferTerms+    , cDefaultFees+    , cAdditionalCardBenefits+    , cRewardUnit+    , cBonusRewards+    , cFlightAccidentInsurance+    , cRewardPartner+    , cPurchaseRateType++    -- ** Links+    , Links+    , links+    , linNextPageToken+    , linKind+    , linItems++    -- ** Publisher+    , Publisher+    , publisher+    , pubStatus+    , pubKind+    , pubPayoutRank+    , pubJoinDate+    , pubClassification+    , pubName+    , pubEpcSevenDayAverage+    , pubItem+    , pubId+    , pubEpcNinetyDayAverage+    , pubSites++    -- ** CcOfferRewardsItem+    , CcOfferRewardsItem+    , ccOfferRewardsItem+    , coriAmount+    , coriExpirationMonths+    , coriCategory+    , coriAdditionalDetails+    , coriMaxRewardTier+    , coriMinRewardTier++    -- ** LinksListRelationshipStatus+    , LinksListRelationshipStatus (..)++    -- ** EventsListStatus+    , EventsListStatus (..)+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude+import           Network.Google.Resource.GAN.Advertisers.Get+import           Network.Google.Resource.GAN.Advertisers.List+import           Network.Google.Resource.GAN.CcOffers.List+import           Network.Google.Resource.GAN.Events.List+import           Network.Google.Resource.GAN.Links.Get+import           Network.Google.Resource.GAN.Links.Insert+import           Network.Google.Resource.GAN.Links.List+import           Network.Google.Resource.GAN.Publishers.Get+import           Network.Google.Resource.GAN.Publishers.List+import           Network.Google.Resource.GAN.Reports.Get++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Google Affiliate Network API service.+type AffiliatesAPI =+     ReportsGetResource :<|> CcOffersListResource :<|>+       AdvertisersListResource+       :<|> AdvertisersGetResource+       :<|> EventsListResource+       :<|> PublishersListResource+       :<|> PublishersGetResource+       :<|> LinksInsertResource+       :<|> LinksListResource+       :<|> LinksGetResource
+ gen/Network/Google/Affiliates/Types.hs view
@@ -0,0 +1,351 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Affiliates.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Affiliates.Types+    (+    -- * Service Configuration+      affiliatesService++    -- * Event+    , Event+    , event+    , eModifyDate+    , eStatus+    , eCommissionableSales+    , eChargeId+    , eAdvertiserName+    , eChargeType+    , eMemberId+    , eKind+    , eNetworkFee+    , eAdvertiserId+    , eEventDate+    , eProducts+    , ePublisherFee+    , eType+    , eOrderId+    , ePublisherId+    , eEarnings+    , ePublisherName++    -- * PublishersGetRole+    , PublishersGetRole (..)++    -- * ReportsGetEventType+    , ReportsGetEventType (..)++    -- * ReportsGetStatus+    , ReportsGetStatus (..)++    -- * LinksListPromotionType+    , LinksListPromotionType (..)++    -- * EventsListType+    , EventsListType (..)++    -- * LinksListRole+    , LinksListRole (..)++    -- * ReportsGetReportType+    , ReportsGetReportType (..)++    -- * AdvertisersListRole+    , AdvertisersListRole (..)++    -- * Money+    , Money+    , money+    , mAmount+    , mCurrencyCode++    -- * Link+    , Link+    , link+    , lAuthorship+    , lDestinationURL+    , lClickTrackingURL+    , lCreateDate+    , lKind+    , lAdvertiserId+    , lEndDate+    , lImageAltText+    , lPromotionType+    , lAvailability+    , lStartDate+    , lName+    , lImpressionTrackingURL+    , lSpecialOffers+    , lEpcSevenDayAverage+    , lId+    , lEpcNinetyDayAverage+    , lLinkType+    , lIsActive+    , lDuration+    , lDescription++    -- * LinksInsertRole+    , LinksInsertRole (..)++    -- * CcOffers+    , CcOffers+    , ccOffers+    , coKind+    , coItems++    -- * PublishersListRole+    , PublishersListRole (..)++    -- * CcOfferDefaultFeesItem+    , CcOfferDefaultFeesItem+    , ccOfferDefaultFeesItem+    , codfiRateType+    , codfiMinRate+    , codfiCategory+    , codfiMaxRate++    -- * Report+    , Report+    , report+    , rEndDate+    , rTotalsRows+    , rKind+    , rStartDate+    , rRows+    , rMatchingRowCount+    , rColumnNames+    , rType++    -- * LinksListAuthorship+    , LinksListAuthorship (..)++    -- * Advertisers+    , Advertisers+    , advertisers+    , aNextPageToken+    , aKind+    , aItems++    -- * LinksGetRole+    , LinksGetRole (..)++    -- * LinksListLinkType+    , LinksListLinkType (..)++    -- * EventsListRole+    , EventsListRole (..)++    -- * EventProductsItem+    , EventProductsItem+    , eventProductsItem+    , epiSKUName+    , epiNetworkFee+    , epiQuantity+    , epiCategoryName+    , epiCategoryId+    , epiSKU+    , epiPublisherFee+    , epiUnitPrice+    , epiEarnings++    -- * AdvertisersListRelationshipStatus+    , AdvertisersListRelationshipStatus (..)++    -- * CcOffersListProjection+    , CcOffersListProjection (..)++    -- * CcOfferBonusRewardsItem+    , CcOfferBonusRewardsItem+    , ccOfferBonusRewardsItem+    , cobriAmount+    , cobriDetails++    -- * AdvertisersGetRole+    , AdvertisersGetRole (..)++    -- * EventsListChargeType+    , EventsListChargeType (..)++    -- * PublishersListRelationshipStatus+    , PublishersListRelationshipStatus (..)++    -- * ReportsGetRole+    , ReportsGetRole (..)++    -- * Events+    , Events+    , events+    , eveNextPageToken+    , eveKind+    , eveItems++    -- * LinkSpecialOffers+    , LinkSpecialOffers+    , linkSpecialOffers+    , lsoFreeShippingMin+    , lsoPercentOff+    , lsoPriceCut+    , lsoPriceCutMin+    , lsoPercentOffMin+    , lsoFreeShipping+    , lsoPromotionCodes+    , lsoFreeGift++    -- * Publishers+    , Publishers+    , publishers+    , pNextPageToken+    , pKind+    , pItems++    -- * Advertiser+    , Advertiser+    , advertiser+    , advAllowPublisherCreatedLinks+    , advContactPhone+    , advContactEmail+    , advStatus+    , advLogoURL+    , advKind+    , advCategory+    , advSiteURL+    , advPayoutRank+    , advJoinDate+    , advDefaultLinkId+    , advRedirectDomains+    , advName+    , advProductFeedsEnabled+    , advMerchantCenterIds+    , advEpcSevenDayAverage+    , advItem+    , advId+    , advEpcNinetyDayAverage+    , advCommissionDuration+    , advDescription++    -- * CcOffer+    , CcOffer+    , ccOffer+    , cMinimumFinanceCharge+    , cTrackingURL+    , cProhibitedCategories+    , cBalanceComputationMethod+    , cInitialSetupAndProcessingFee+    , cReturnedPaymentFee+    , cAgeMinimumDetails+    , cVariableRatesUpdateFrequency+    , cCreditLimitMin+    , cTravelInsurance+    , cApprovedCategories+    , cAnnualFeeDisplay+    , cOverLimitFee+    , cMaxPurchaseRate+    , cAgeMinimum+    , cVariableRatesLastUpdated+    , cIntroCashAdvanceTerms+    , cIssuerWebsite+    , cLuggageInsurance+    , cKind+    , cRewardsHaveBlackoutDates+    , cDisclaimer+    , cAdditionalCardHolderFee+    , cExistingCustomerOnly+    , cEmergencyInsurance+    , cNetwork+    , cCashAdvanceTerms+    , cStatementCopyFee+    , cAprDisplay+    , cOffersImmediateCashReward+    , cRewards+    , cCardType+    , cImageURL+    , cCreditLimitMax+    , cLandingPageURL+    , cAnnualFee+    , cRewardsExpire+    , cFirstYearAnnualFee+    , cCarRentalInsurance+    , cPurchaseRateAdditionalDetails+    , cOfferId+    , cGracePeriodDisplay+    , cIntroPurchaseTerms+    , cCreditRatingDisplay+    , cBalanceTransferTerms+    , cLatePaymentFee+    , cCardBenefits+    , cIssuer+    , cCardName+    , cMinPurchaseRate+    , cFraudLiability+    , cForeignCurrencyTransactionFee+    , cExtendedWarranty+    , cAnnualRewardMaximum+    , cIssuerId+    , cIntroBalanceTransferTerms+    , cDefaultFees+    , cAdditionalCardBenefits+    , cRewardUnit+    , cBonusRewards+    , cFlightAccidentInsurance+    , cRewardPartner+    , cPurchaseRateType++    -- * Links+    , Links+    , links+    , linNextPageToken+    , linKind+    , linItems++    -- * Publisher+    , Publisher+    , publisher+    , pubStatus+    , pubKind+    , pubPayoutRank+    , pubJoinDate+    , pubClassification+    , pubName+    , pubEpcSevenDayAverage+    , pubItem+    , pubId+    , pubEpcNinetyDayAverage+    , pubSites++    -- * CcOfferRewardsItem+    , CcOfferRewardsItem+    , ccOfferRewardsItem+    , coriAmount+    , coriExpirationMonths+    , coriCategory+    , coriAdditionalDetails+    , coriMaxRewardTier+    , coriMinRewardTier++    -- * LinksListRelationshipStatus+    , LinksListRelationshipStatus (..)++    -- * EventsListStatus+    , EventsListStatus (..)+    ) where++import           Network.Google.Affiliates.Types.Product+import           Network.Google.Affiliates.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1beta1' of the Google Affiliate Network API. This contains the host and root path used as a starting point for constructing service requests.+affiliatesService :: Service+affiliatesService+  = defaultService (ServiceId "gan:v1beta1")+      "www.googleapis.com"
+ gen/Network/Google/Affiliates/Types/Product.hs view
@@ -0,0 +1,2745 @@+{-# 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.Affiliates.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Affiliates.Types.Product where++import           Network.Google.Affiliates.Types.Sum+import           Network.Google.Prelude++-- | An EventResource.+--+-- /See:/ 'event' smart constructor.+data Event = Event+    { _eModifyDate          :: !(Maybe DateTime')+    , _eStatus              :: !(Maybe Text)+    , _eCommissionableSales :: !(Maybe Money)+    , _eChargeId            :: !(Maybe Text)+    , _eAdvertiserName      :: !(Maybe Text)+    , _eChargeType          :: !(Maybe Text)+    , _eMemberId            :: !(Maybe Text)+    , _eKind                :: !Text+    , _eNetworkFee          :: !(Maybe Money)+    , _eAdvertiserId        :: !(Maybe (Textual Int64))+    , _eEventDate           :: !(Maybe DateTime')+    , _eProducts            :: !(Maybe [EventProductsItem])+    , _ePublisherFee        :: !(Maybe Money)+    , _eType                :: !(Maybe Text)+    , _eOrderId             :: !(Maybe Text)+    , _ePublisherId         :: !(Maybe (Textual Int64))+    , _eEarnings            :: !(Maybe Money)+    , _ePublisherName       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eModifyDate'+--+-- * 'eStatus'+--+-- * 'eCommissionableSales'+--+-- * 'eChargeId'+--+-- * 'eAdvertiserName'+--+-- * 'eChargeType'+--+-- * 'eMemberId'+--+-- * 'eKind'+--+-- * 'eNetworkFee'+--+-- * 'eAdvertiserId'+--+-- * 'eEventDate'+--+-- * 'eProducts'+--+-- * 'ePublisherFee'+--+-- * 'eType'+--+-- * 'eOrderId'+--+-- * 'ePublisherId'+--+-- * 'eEarnings'+--+-- * 'ePublisherName'+event+    :: Event+event =+    Event+    { _eModifyDate = Nothing+    , _eStatus = Nothing+    , _eCommissionableSales = Nothing+    , _eChargeId = Nothing+    , _eAdvertiserName = Nothing+    , _eChargeType = Nothing+    , _eMemberId = Nothing+    , _eKind = "gan#event"+    , _eNetworkFee = Nothing+    , _eAdvertiserId = Nothing+    , _eEventDate = Nothing+    , _eProducts = Nothing+    , _ePublisherFee = Nothing+    , _eType = Nothing+    , _eOrderId = Nothing+    , _ePublisherId = Nothing+    , _eEarnings = Nothing+    , _ePublisherName = Nothing+    }++-- | The date-time this event was last modified as a RFC 3339 date-time+-- value.+eModifyDate :: Lens' Event (Maybe UTCTime)+eModifyDate+  = lens _eModifyDate (\ s a -> s{_eModifyDate = a}) .+      mapping _DateTime++-- | Status of the event (active|canceled). Only returned for charge and+-- conversion events.+eStatus :: Lens' Event (Maybe Text)+eStatus = lens _eStatus (\ s a -> s{_eStatus = a})++-- | Amount of money exchanged during the transaction. Only returned for+-- charge and conversion events.+eCommissionableSales :: Lens' Event (Maybe Money)+eCommissionableSales+  = lens _eCommissionableSales+      (\ s a -> s{_eCommissionableSales = a})++-- | The charge ID for this event. Only returned for charge events.+eChargeId :: Lens' Event (Maybe Text)+eChargeId+  = lens _eChargeId (\ s a -> s{_eChargeId = a})++-- | The name of the advertiser for this event.+eAdvertiserName :: Lens' Event (Maybe Text)+eAdvertiserName+  = lens _eAdvertiserName+      (\ s a -> s{_eAdvertiserName = a})++-- | Charge type of the event+-- (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only+-- returned for charge events.+eChargeType :: Lens' Event (Maybe Text)+eChargeType+  = lens _eChargeType (\ s a -> s{_eChargeType = a})++-- | The ID of the member attached to this event. Only returned for+-- conversion events.+eMemberId :: Lens' Event (Maybe Text)+eMemberId+  = lens _eMemberId (\ s a -> s{_eMemberId = a})++-- | The kind for one event.+eKind :: Lens' Event Text+eKind = lens _eKind (\ s a -> s{_eKind = a})++-- | Fee that the advertiser paid to the Google Affiliate Network.+eNetworkFee :: Lens' Event (Maybe Money)+eNetworkFee+  = lens _eNetworkFee (\ s a -> s{_eNetworkFee = a})++-- | The ID of advertiser for this event.+eAdvertiserId :: Lens' Event (Maybe Int64)+eAdvertiserId+  = lens _eAdvertiserId+      (\ s a -> s{_eAdvertiserId = a})+      . mapping _Coerce++-- | The date-time this event was initiated as a RFC 3339 date-time value.+eEventDate :: Lens' Event (Maybe UTCTime)+eEventDate+  = lens _eEventDate (\ s a -> s{_eEventDate = a}) .+      mapping _DateTime++-- | Products associated with the event.+eProducts :: Lens' Event [EventProductsItem]+eProducts+  = lens _eProducts (\ s a -> s{_eProducts = a}) .+      _Default+      . _Coerce++-- | Fee that the advertiser paid to the publisher.+ePublisherFee :: Lens' Event (Maybe Money)+ePublisherFee+  = lens _ePublisherFee+      (\ s a -> s{_ePublisherFee = a})++-- | Type of the event (action|transaction|charge).+eType :: Lens' Event (Maybe Text)+eType = lens _eType (\ s a -> s{_eType = a})++-- | The order ID for this event. Only returned for conversion events.+eOrderId :: Lens' Event (Maybe Text)+eOrderId = lens _eOrderId (\ s a -> s{_eOrderId = a})++-- | The ID of the publisher for this event.+ePublisherId :: Lens' Event (Maybe Int64)+ePublisherId+  = lens _ePublisherId (\ s a -> s{_ePublisherId = a})+      . mapping _Coerce++-- | Earnings by the publisher.+eEarnings :: Lens' Event (Maybe Money)+eEarnings+  = lens _eEarnings (\ s a -> s{_eEarnings = a})++-- | The name of the publisher for this event.+ePublisherName :: Lens' Event (Maybe Text)+ePublisherName+  = lens _ePublisherName+      (\ s a -> s{_ePublisherName = a})++instance FromJSON Event where+        parseJSON+          = withObject "Event"+              (\ o ->+                 Event <$>+                   (o .:? "modifyDate") <*> (o .:? "status") <*>+                     (o .:? "commissionableSales")+                     <*> (o .:? "chargeId")+                     <*> (o .:? "advertiserName")+                     <*> (o .:? "chargeType")+                     <*> (o .:? "memberId")+                     <*> (o .:? "kind" .!= "gan#event")+                     <*> (o .:? "networkFee")+                     <*> (o .:? "advertiserId")+                     <*> (o .:? "eventDate")+                     <*> (o .:? "products" .!= mempty)+                     <*> (o .:? "publisherFee")+                     <*> (o .:? "type")+                     <*> (o .:? "orderId")+                     <*> (o .:? "publisherId")+                     <*> (o .:? "earnings")+                     <*> (o .:? "publisherName"))++instance ToJSON Event where+        toJSON Event{..}+          = object+              (catMaybes+                 [("modifyDate" .=) <$> _eModifyDate,+                  ("status" .=) <$> _eStatus,+                  ("commissionableSales" .=) <$> _eCommissionableSales,+                  ("chargeId" .=) <$> _eChargeId,+                  ("advertiserName" .=) <$> _eAdvertiserName,+                  ("chargeType" .=) <$> _eChargeType,+                  ("memberId" .=) <$> _eMemberId,+                  Just ("kind" .= _eKind),+                  ("networkFee" .=) <$> _eNetworkFee,+                  ("advertiserId" .=) <$> _eAdvertiserId,+                  ("eventDate" .=) <$> _eEventDate,+                  ("products" .=) <$> _eProducts,+                  ("publisherFee" .=) <$> _ePublisherFee,+                  ("type" .=) <$> _eType, ("orderId" .=) <$> _eOrderId,+                  ("publisherId" .=) <$> _ePublisherId,+                  ("earnings" .=) <$> _eEarnings,+                  ("publisherName" .=) <$> _ePublisherName])++-- | An ApiMoneyProto.+--+-- /See:/ 'money' smart constructor.+data Money = Money+    { _mAmount       :: !(Maybe (Textual Double))+    , _mCurrencyCode :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Money' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mAmount'+--+-- * 'mCurrencyCode'+money+    :: Money+money =+    Money+    { _mAmount = Nothing+    , _mCurrencyCode = Nothing+    }++-- | The amount of money.+mAmount :: Lens' Money (Maybe Double)+mAmount+  = lens _mAmount (\ s a -> s{_mAmount = a}) .+      mapping _Coerce++-- | The 3-letter code of the currency in question.+mCurrencyCode :: Lens' Money (Maybe Text)+mCurrencyCode+  = lens _mCurrencyCode+      (\ s a -> s{_mCurrencyCode = a})++instance FromJSON Money where+        parseJSON+          = withObject "Money"+              (\ o ->+                 Money <$>+                   (o .:? "amount") <*> (o .:? "currencyCode"))++instance ToJSON Money where+        toJSON Money{..}+          = object+              (catMaybes+                 [("amount" .=) <$> _mAmount,+                  ("currencyCode" .=) <$> _mCurrencyCode])++-- | A LinkResource.+--+-- /See:/ 'link' smart constructor.+data Link = Link+    { _lAuthorship            :: !(Maybe Text)+    , _lDestinationURL        :: !(Maybe Text)+    , _lClickTrackingURL      :: !(Maybe Text)+    , _lCreateDate            :: !(Maybe DateTime')+    , _lKind                  :: !Text+    , _lAdvertiserId          :: !(Maybe (Textual Int64))+    , _lEndDate               :: !(Maybe DateTime')+    , _lImageAltText          :: !(Maybe Text)+    , _lPromotionType         :: !(Maybe Text)+    , _lAvailability          :: !(Maybe Text)+    , _lStartDate             :: !(Maybe DateTime')+    , _lName                  :: !(Maybe Text)+    , _lImpressionTrackingURL :: !(Maybe Text)+    , _lSpecialOffers         :: !(Maybe LinkSpecialOffers)+    , _lEpcSevenDayAverage    :: !(Maybe Money)+    , _lId                    :: !(Maybe (Textual Int64))+    , _lEpcNinetyDayAverage   :: !(Maybe Money)+    , _lLinkType              :: !(Maybe Text)+    , _lIsActive              :: !(Maybe Bool)+    , _lDuration              :: !(Maybe Text)+    , _lDescription           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Link' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lAuthorship'+--+-- * 'lDestinationURL'+--+-- * 'lClickTrackingURL'+--+-- * 'lCreateDate'+--+-- * 'lKind'+--+-- * 'lAdvertiserId'+--+-- * 'lEndDate'+--+-- * 'lImageAltText'+--+-- * 'lPromotionType'+--+-- * 'lAvailability'+--+-- * 'lStartDate'+--+-- * 'lName'+--+-- * 'lImpressionTrackingURL'+--+-- * 'lSpecialOffers'+--+-- * 'lEpcSevenDayAverage'+--+-- * 'lId'+--+-- * 'lEpcNinetyDayAverage'+--+-- * 'lLinkType'+--+-- * 'lIsActive'+--+-- * 'lDuration'+--+-- * 'lDescription'+link+    :: Link+link =+    Link+    { _lAuthorship = Nothing+    , _lDestinationURL = Nothing+    , _lClickTrackingURL = Nothing+    , _lCreateDate = Nothing+    , _lKind = "gan#link"+    , _lAdvertiserId = Nothing+    , _lEndDate = Nothing+    , _lImageAltText = Nothing+    , _lPromotionType = Nothing+    , _lAvailability = Nothing+    , _lStartDate = Nothing+    , _lName = Nothing+    , _lImpressionTrackingURL = Nothing+    , _lSpecialOffers = Nothing+    , _lEpcSevenDayAverage = Nothing+    , _lId = Nothing+    , _lEpcNinetyDayAverage = Nothing+    , _lLinkType = Nothing+    , _lIsActive = Nothing+    , _lDuration = Nothing+    , _lDescription = Nothing+    }++-- | Authorship+lAuthorship :: Lens' Link (Maybe Text)+lAuthorship+  = lens _lAuthorship (\ s a -> s{_lAuthorship = a})++-- | The destination URL for the link.+lDestinationURL :: Lens' Link (Maybe Text)+lDestinationURL+  = lens _lDestinationURL+      (\ s a -> s{_lDestinationURL = a})++-- | Tracking url for clicks.+lClickTrackingURL :: Lens' Link (Maybe Text)+lClickTrackingURL+  = lens _lClickTrackingURL+      (\ s a -> s{_lClickTrackingURL = a})++-- | Date that this link was created.+lCreateDate :: Lens' Link (Maybe UTCTime)+lCreateDate+  = lens _lCreateDate (\ s a -> s{_lCreateDate = a}) .+      mapping _DateTime++-- | The kind for one entity.+lKind :: Lens' Link Text+lKind = lens _lKind (\ s a -> s{_lKind = a})++-- | The advertiser id for the advertiser who owns this link.+lAdvertiserId :: Lens' Link (Maybe Int64)+lAdvertiserId+  = lens _lAdvertiserId+      (\ s a -> s{_lAdvertiserId = a})+      . mapping _Coerce++-- | Date that this link becomes inactive.+lEndDate :: Lens' Link (Maybe UTCTime)+lEndDate+  = lens _lEndDate (\ s a -> s{_lEndDate = a}) .+      mapping _DateTime++-- | image alt text.+lImageAltText :: Lens' Link (Maybe Text)+lImageAltText+  = lens _lImageAltText+      (\ s a -> s{_lImageAltText = a})++-- | Promotion Type+lPromotionType :: Lens' Link (Maybe Text)+lPromotionType+  = lens _lPromotionType+      (\ s a -> s{_lPromotionType = a})++-- | Availability.+lAvailability :: Lens' Link (Maybe Text)+lAvailability+  = lens _lAvailability+      (\ s a -> s{_lAvailability = a})++-- | Date that this link becomes active.+lStartDate :: Lens' Link (Maybe UTCTime)+lStartDate+  = lens _lStartDate (\ s a -> s{_lStartDate = a}) .+      mapping _DateTime++-- | The logical name for this link.+lName :: Lens' Link (Maybe Text)+lName = lens _lName (\ s a -> s{_lName = a})++-- | Tracking url for impressions.+lImpressionTrackingURL :: Lens' Link (Maybe Text)+lImpressionTrackingURL+  = lens _lImpressionTrackingURL+      (\ s a -> s{_lImpressionTrackingURL = a})++-- | Special offers on the link.+lSpecialOffers :: Lens' Link (Maybe LinkSpecialOffers)+lSpecialOffers+  = lens _lSpecialOffers+      (\ s a -> s{_lSpecialOffers = a})++-- | The sum of fees paid to publishers divided by the total number of clicks+-- over the past seven days on this link. This value should be multiplied+-- by 100 at the time of display.+lEpcSevenDayAverage :: Lens' Link (Maybe Money)+lEpcSevenDayAverage+  = lens _lEpcSevenDayAverage+      (\ s a -> s{_lEpcSevenDayAverage = a})++-- | The ID of this link.+lId :: Lens' Link (Maybe Int64)+lId+  = lens _lId (\ s a -> s{_lId = a}) . mapping _Coerce++-- | The sum of fees paid to publishers divided by the total number of clicks+-- over the past three months on this link. This value should be multiplied+-- by 100 at the time of display.+lEpcNinetyDayAverage :: Lens' Link (Maybe Money)+lEpcNinetyDayAverage+  = lens _lEpcNinetyDayAverage+      (\ s a -> s{_lEpcNinetyDayAverage = a})++-- | The link type.+lLinkType :: Lens' Link (Maybe Text)+lLinkType+  = lens _lLinkType (\ s a -> s{_lLinkType = a})++-- | Flag for if this link is active.+lIsActive :: Lens' Link (Maybe Bool)+lIsActive+  = lens _lIsActive (\ s a -> s{_lIsActive = a})++-- | Duration+lDuration :: Lens' Link (Maybe Text)+lDuration+  = lens _lDuration (\ s a -> s{_lDuration = a})++-- | Description.+lDescription :: Lens' Link (Maybe Text)+lDescription+  = lens _lDescription (\ s a -> s{_lDescription = a})++instance FromJSON Link where+        parseJSON+          = withObject "Link"+              (\ o ->+                 Link <$>+                   (o .:? "authorship") <*> (o .:? "destinationUrl") <*>+                     (o .:? "clickTrackingUrl")+                     <*> (o .:? "createDate")+                     <*> (o .:? "kind" .!= "gan#link")+                     <*> (o .:? "advertiserId")+                     <*> (o .:? "endDate")+                     <*> (o .:? "imageAltText")+                     <*> (o .:? "promotionType")+                     <*> (o .:? "availability")+                     <*> (o .:? "startDate")+                     <*> (o .:? "name")+                     <*> (o .:? "impressionTrackingUrl")+                     <*> (o .:? "specialOffers")+                     <*> (o .:? "epcSevenDayAverage")+                     <*> (o .:? "id")+                     <*> (o .:? "epcNinetyDayAverage")+                     <*> (o .:? "linkType")+                     <*> (o .:? "isActive")+                     <*> (o .:? "duration")+                     <*> (o .:? "description"))++instance ToJSON Link where+        toJSON Link{..}+          = object+              (catMaybes+                 [("authorship" .=) <$> _lAuthorship,+                  ("destinationUrl" .=) <$> _lDestinationURL,+                  ("clickTrackingUrl" .=) <$> _lClickTrackingURL,+                  ("createDate" .=) <$> _lCreateDate,+                  Just ("kind" .= _lKind),+                  ("advertiserId" .=) <$> _lAdvertiserId,+                  ("endDate" .=) <$> _lEndDate,+                  ("imageAltText" .=) <$> _lImageAltText,+                  ("promotionType" .=) <$> _lPromotionType,+                  ("availability" .=) <$> _lAvailability,+                  ("startDate" .=) <$> _lStartDate,+                  ("name" .=) <$> _lName,+                  ("impressionTrackingUrl" .=) <$>+                    _lImpressionTrackingURL,+                  ("specialOffers" .=) <$> _lSpecialOffers,+                  ("epcSevenDayAverage" .=) <$> _lEpcSevenDayAverage,+                  ("id" .=) <$> _lId,+                  ("epcNinetyDayAverage" .=) <$> _lEpcNinetyDayAverage,+                  ("linkType" .=) <$> _lLinkType,+                  ("isActive" .=) <$> _lIsActive,+                  ("duration" .=) <$> _lDuration,+                  ("description" .=) <$> _lDescription])++--+-- /See:/ 'ccOffers' smart constructor.+data CcOffers = CcOffers+    { _coKind  :: !Text+    , _coItems :: !(Maybe [CcOffer])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOffers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coKind'+--+-- * 'coItems'+ccOffers+    :: CcOffers+ccOffers =+    CcOffers+    { _coKind = "gan#ccOffers"+    , _coItems = Nothing+    }++-- | The kind for a page of credit card offers.+coKind :: Lens' CcOffers Text+coKind = lens _coKind (\ s a -> s{_coKind = a})++-- | The credit card offers.+coItems :: Lens' CcOffers [CcOffer]+coItems+  = lens _coItems (\ s a -> s{_coItems = a}) . _Default+      . _Coerce++instance FromJSON CcOffers where+        parseJSON+          = withObject "CcOffers"+              (\ o ->+                 CcOffers <$>+                   (o .:? "kind" .!= "gan#ccOffers") <*>+                     (o .:? "items" .!= mempty))++instance ToJSON CcOffers where+        toJSON CcOffers{..}+          = object+              (catMaybes+                 [Just ("kind" .= _coKind),+                  ("items" .=) <$> _coItems])++--+-- /See:/ 'ccOfferDefaultFeesItem' smart constructor.+data CcOfferDefaultFeesItem = CcOfferDefaultFeesItem+    { _codfiRateType :: !(Maybe Text)+    , _codfiMinRate  :: !(Maybe (Textual Double))+    , _codfiCategory :: !(Maybe Text)+    , _codfiMaxRate  :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOfferDefaultFeesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'codfiRateType'+--+-- * 'codfiMinRate'+--+-- * 'codfiCategory'+--+-- * 'codfiMaxRate'+ccOfferDefaultFeesItem+    :: CcOfferDefaultFeesItem+ccOfferDefaultFeesItem =+    CcOfferDefaultFeesItem+    { _codfiRateType = Nothing+    , _codfiMinRate = Nothing+    , _codfiCategory = Nothing+    , _codfiMaxRate = Nothing+    }++-- | Fixed or variable.+codfiRateType :: Lens' CcOfferDefaultFeesItem (Maybe Text)+codfiRateType+  = lens _codfiRateType+      (\ s a -> s{_codfiRateType = a})++-- | The lowest rate the issuer may charge for defaulting on debt in this+-- category. Expressed as an absolute number, not as a percentage.+codfiMinRate :: Lens' CcOfferDefaultFeesItem (Maybe Double)+codfiMinRate+  = lens _codfiMinRate (\ s a -> s{_codfiMinRate = a})+      . mapping _Coerce++-- | The type of charge, for example Purchases.+codfiCategory :: Lens' CcOfferDefaultFeesItem (Maybe Text)+codfiCategory+  = lens _codfiCategory+      (\ s a -> s{_codfiCategory = a})++-- | The highest rate the issuer may charge for defaulting on debt in this+-- category. Expressed as an absolute number, not as a percentage.+codfiMaxRate :: Lens' CcOfferDefaultFeesItem (Maybe Double)+codfiMaxRate+  = lens _codfiMaxRate (\ s a -> s{_codfiMaxRate = a})+      . mapping _Coerce++instance FromJSON CcOfferDefaultFeesItem where+        parseJSON+          = withObject "CcOfferDefaultFeesItem"+              (\ o ->+                 CcOfferDefaultFeesItem <$>+                   (o .:? "rateType") <*> (o .:? "minRate") <*>+                     (o .:? "category")+                     <*> (o .:? "maxRate"))++instance ToJSON CcOfferDefaultFeesItem where+        toJSON CcOfferDefaultFeesItem{..}+          = object+              (catMaybes+                 [("rateType" .=) <$> _codfiRateType,+                  ("minRate" .=) <$> _codfiMinRate,+                  ("category" .=) <$> _codfiCategory,+                  ("maxRate" .=) <$> _codfiMaxRate])++-- | A ReportResource representing a report of a certain type either for an+-- advertiser or publisher.+--+-- /See:/ 'report' smart constructor.+data Report = Report+    { _rEndDate          :: !(Maybe Text)+    , _rTotalsRows       :: !(Maybe [[JSONValue]])+    , _rKind             :: !Text+    , _rStartDate        :: !(Maybe Text)+    , _rRows             :: !(Maybe [[JSONValue]])+    , _rMatchingRowCount :: !(Maybe (Textual Int64))+    , _rColumnNames      :: !(Maybe [Text])+    , _rType             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Report' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rEndDate'+--+-- * 'rTotalsRows'+--+-- * 'rKind'+--+-- * 'rStartDate'+--+-- * 'rRows'+--+-- * 'rMatchingRowCount'+--+-- * 'rColumnNames'+--+-- * 'rType'+report+    :: Report+report =+    Report+    { _rEndDate = Nothing+    , _rTotalsRows = Nothing+    , _rKind = "gan#report"+    , _rStartDate = Nothing+    , _rRows = Nothing+    , _rMatchingRowCount = Nothing+    , _rColumnNames = Nothing+    , _rType = Nothing+    }++-- | The end of the date range for this report, exclusive.+rEndDate :: Lens' Report (Maybe Text)+rEndDate = lens _rEndDate (\ s a -> s{_rEndDate = a})++-- | The totals rows for the report+rTotalsRows :: Lens' Report [[JSONValue]]+rTotalsRows+  = lens _rTotalsRows (\ s a -> s{_rTotalsRows = a}) .+      _Default+      . _Coerce++-- | The kind for a report.+rKind :: Lens' Report Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | The start of the date range for this report, inclusive.+rStartDate :: Lens' Report (Maybe Text)+rStartDate+  = lens _rStartDate (\ s a -> s{_rStartDate = a})++-- | The rows of data for the report+rRows :: Lens' Report [[JSONValue]]+rRows+  = lens _rRows (\ s a -> s{_rRows = a}) . _Default .+      _Coerce++-- | The number of matching rows before paging is applied.+rMatchingRowCount :: Lens' Report (Maybe Int64)+rMatchingRowCount+  = lens _rMatchingRowCount+      (\ s a -> s{_rMatchingRowCount = a})+      . mapping _Coerce++-- | The column names for the report+rColumnNames :: Lens' Report [Text]+rColumnNames+  = lens _rColumnNames (\ s a -> s{_rColumnNames = a})+      . _Default+      . _Coerce++-- | The report type.+rType :: Lens' Report (Maybe Text)+rType = lens _rType (\ s a -> s{_rType = a})++instance FromJSON Report where+        parseJSON+          = withObject "Report"+              (\ o ->+                 Report <$>+                   (o .:? "end_date") <*>+                     (o .:? "totals_rows" .!= mempty)+                     <*> (o .:? "kind" .!= "gan#report")+                     <*> (o .:? "start_date")+                     <*> (o .:? "rows" .!= mempty)+                     <*> (o .:? "matching_row_count")+                     <*> (o .:? "column_names" .!= mempty)+                     <*> (o .:? "type"))++instance ToJSON Report where+        toJSON Report{..}+          = object+              (catMaybes+                 [("end_date" .=) <$> _rEndDate,+                  ("totals_rows" .=) <$> _rTotalsRows,+                  Just ("kind" .= _rKind),+                  ("start_date" .=) <$> _rStartDate,+                  ("rows" .=) <$> _rRows,+                  ("matching_row_count" .=) <$> _rMatchingRowCount,+                  ("column_names" .=) <$> _rColumnNames,+                  ("type" .=) <$> _rType])++--+-- /See:/ 'advertisers' smart constructor.+data Advertisers = Advertisers+    { _aNextPageToken :: !(Maybe Text)+    , _aKind          :: !Text+    , _aItems         :: !(Maybe [Advertiser])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Advertisers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aNextPageToken'+--+-- * 'aKind'+--+-- * 'aItems'+advertisers+    :: Advertisers+advertisers =+    Advertisers+    { _aNextPageToken = Nothing+    , _aKind = "gan#advertisers"+    , _aItems = Nothing+    }++-- | The \'pageToken\' to pass to the next request to get the next page, if+-- there are more to retrieve.+aNextPageToken :: Lens' Advertisers (Maybe Text)+aNextPageToken+  = lens _aNextPageToken+      (\ s a -> s{_aNextPageToken = a})++-- | The kind for a page of advertisers.+aKind :: Lens' Advertisers Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | The advertiser list.+aItems :: Lens' Advertisers [Advertiser]+aItems+  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .+      _Coerce++instance FromJSON Advertisers where+        parseJSON+          = withObject "Advertisers"+              (\ o ->+                 Advertisers <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "gan#advertisers")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Advertisers where+        toJSON Advertisers{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _aNextPageToken,+                  Just ("kind" .= _aKind), ("items" .=) <$> _aItems])++--+-- /See:/ 'eventProductsItem' smart constructor.+data EventProductsItem = EventProductsItem+    { _epiSKUName      :: !(Maybe Text)+    , _epiNetworkFee   :: !(Maybe Money)+    , _epiQuantity     :: !(Maybe (Textual Int64))+    , _epiCategoryName :: !(Maybe Text)+    , _epiCategoryId   :: !(Maybe Text)+    , _epiSKU          :: !(Maybe Text)+    , _epiPublisherFee :: !(Maybe Money)+    , _epiUnitPrice    :: !(Maybe Money)+    , _epiEarnings     :: !(Maybe Money)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventProductsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epiSKUName'+--+-- * 'epiNetworkFee'+--+-- * 'epiQuantity'+--+-- * 'epiCategoryName'+--+-- * 'epiCategoryId'+--+-- * 'epiSKU'+--+-- * 'epiPublisherFee'+--+-- * 'epiUnitPrice'+--+-- * 'epiEarnings'+eventProductsItem+    :: EventProductsItem+eventProductsItem =+    EventProductsItem+    { _epiSKUName = Nothing+    , _epiNetworkFee = Nothing+    , _epiQuantity = Nothing+    , _epiCategoryName = Nothing+    , _epiCategoryId = Nothing+    , _epiSKU = Nothing+    , _epiPublisherFee = Nothing+    , _epiUnitPrice = Nothing+    , _epiEarnings = Nothing+    }++-- | Sku name of this product.+epiSKUName :: Lens' EventProductsItem (Maybe Text)+epiSKUName+  = lens _epiSKUName (\ s a -> s{_epiSKUName = a})++-- | Fee that the advertiser paid to the Google Affiliate Network for this+-- product.+epiNetworkFee :: Lens' EventProductsItem (Maybe Money)+epiNetworkFee+  = lens _epiNetworkFee+      (\ s a -> s{_epiNetworkFee = a})++-- | Quantity of this product bought\/exchanged.+epiQuantity :: Lens' EventProductsItem (Maybe Int64)+epiQuantity+  = lens _epiQuantity (\ s a -> s{_epiQuantity = a}) .+      mapping _Coerce++-- | Name of the category this product belongs to.+epiCategoryName :: Lens' EventProductsItem (Maybe Text)+epiCategoryName+  = lens _epiCategoryName+      (\ s a -> s{_epiCategoryName = a})++-- | Id of the category this product belongs to.+epiCategoryId :: Lens' EventProductsItem (Maybe Text)+epiCategoryId+  = lens _epiCategoryId+      (\ s a -> s{_epiCategoryId = a})++-- | Sku of this product.+epiSKU :: Lens' EventProductsItem (Maybe Text)+epiSKU = lens _epiSKU (\ s a -> s{_epiSKU = a})++-- | Fee that the advertiser paid to the publisehr for this product.+epiPublisherFee :: Lens' EventProductsItem (Maybe Money)+epiPublisherFee+  = lens _epiPublisherFee+      (\ s a -> s{_epiPublisherFee = a})++-- | Price per unit of this product.+epiUnitPrice :: Lens' EventProductsItem (Maybe Money)+epiUnitPrice+  = lens _epiUnitPrice (\ s a -> s{_epiUnitPrice = a})++-- | Amount earned by the publisher on this product.+epiEarnings :: Lens' EventProductsItem (Maybe Money)+epiEarnings+  = lens _epiEarnings (\ s a -> s{_epiEarnings = a})++instance FromJSON EventProductsItem where+        parseJSON+          = withObject "EventProductsItem"+              (\ o ->+                 EventProductsItem <$>+                   (o .:? "skuName") <*> (o .:? "networkFee") <*>+                     (o .:? "quantity")+                     <*> (o .:? "categoryName")+                     <*> (o .:? "categoryId")+                     <*> (o .:? "sku")+                     <*> (o .:? "publisherFee")+                     <*> (o .:? "unitPrice")+                     <*> (o .:? "earnings"))++instance ToJSON EventProductsItem where+        toJSON EventProductsItem{..}+          = object+              (catMaybes+                 [("skuName" .=) <$> _epiSKUName,+                  ("networkFee" .=) <$> _epiNetworkFee,+                  ("quantity" .=) <$> _epiQuantity,+                  ("categoryName" .=) <$> _epiCategoryName,+                  ("categoryId" .=) <$> _epiCategoryId,+                  ("sku" .=) <$> _epiSKU,+                  ("publisherFee" .=) <$> _epiPublisherFee,+                  ("unitPrice" .=) <$> _epiUnitPrice,+                  ("earnings" .=) <$> _epiEarnings])++--+-- /See:/ 'ccOfferBonusRewardsItem' smart constructor.+data CcOfferBonusRewardsItem = CcOfferBonusRewardsItem+    { _cobriAmount  :: !(Maybe (Textual Double))+    , _cobriDetails :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOfferBonusRewardsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cobriAmount'+--+-- * 'cobriDetails'+ccOfferBonusRewardsItem+    :: CcOfferBonusRewardsItem+ccOfferBonusRewardsItem =+    CcOfferBonusRewardsItem+    { _cobriAmount = Nothing+    , _cobriDetails = Nothing+    }++-- | How many units of reward will be granted.+cobriAmount :: Lens' CcOfferBonusRewardsItem (Maybe Double)+cobriAmount+  = lens _cobriAmount (\ s a -> s{_cobriAmount = a}) .+      mapping _Coerce++-- | The circumstances under which this rule applies, for example, booking a+-- flight via Orbitz.+cobriDetails :: Lens' CcOfferBonusRewardsItem (Maybe Text)+cobriDetails+  = lens _cobriDetails (\ s a -> s{_cobriDetails = a})++instance FromJSON CcOfferBonusRewardsItem where+        parseJSON+          = withObject "CcOfferBonusRewardsItem"+              (\ o ->+                 CcOfferBonusRewardsItem <$>+                   (o .:? "amount") <*> (o .:? "details"))++instance ToJSON CcOfferBonusRewardsItem where+        toJSON CcOfferBonusRewardsItem{..}+          = object+              (catMaybes+                 [("amount" .=) <$> _cobriAmount,+                  ("details" .=) <$> _cobriDetails])++--+-- /See:/ 'events' smart constructor.+data Events = Events+    { _eveNextPageToken :: !(Maybe Text)+    , _eveKind          :: !Text+    , _eveItems         :: !(Maybe [Event])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Events' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eveNextPageToken'+--+-- * 'eveKind'+--+-- * 'eveItems'+events+    :: Events+events =+    Events+    { _eveNextPageToken = Nothing+    , _eveKind = "gan#events"+    , _eveItems = Nothing+    }++-- | The \'pageToken\' to pass to the next request to get the next page, if+-- there are more to retrieve.+eveNextPageToken :: Lens' Events (Maybe Text)+eveNextPageToken+  = lens _eveNextPageToken+      (\ s a -> s{_eveNextPageToken = a})++-- | The kind for a page of events.+eveKind :: Lens' Events Text+eveKind = lens _eveKind (\ s a -> s{_eveKind = a})++-- | The event list.+eveItems :: Lens' Events [Event]+eveItems+  = lens _eveItems (\ s a -> s{_eveItems = a}) .+      _Default+      . _Coerce++instance FromJSON Events where+        parseJSON+          = withObject "Events"+              (\ o ->+                 Events <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "gan#events")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Events where+        toJSON Events{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _eveNextPageToken,+                  Just ("kind" .= _eveKind),+                  ("items" .=) <$> _eveItems])++-- | Special offers on the link.+--+-- /See:/ 'linkSpecialOffers' smart constructor.+data LinkSpecialOffers = LinkSpecialOffers+    { _lsoFreeShippingMin :: !(Maybe Money)+    , _lsoPercentOff      :: !(Maybe (Textual Double))+    , _lsoPriceCut        :: !(Maybe Money)+    , _lsoPriceCutMin     :: !(Maybe Money)+    , _lsoPercentOffMin   :: !(Maybe Money)+    , _lsoFreeShipping    :: !(Maybe Bool)+    , _lsoPromotionCodes  :: !(Maybe [Text])+    , _lsoFreeGift        :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LinkSpecialOffers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsoFreeShippingMin'+--+-- * 'lsoPercentOff'+--+-- * 'lsoPriceCut'+--+-- * 'lsoPriceCutMin'+--+-- * 'lsoPercentOffMin'+--+-- * 'lsoFreeShipping'+--+-- * 'lsoPromotionCodes'+--+-- * 'lsoFreeGift'+linkSpecialOffers+    :: LinkSpecialOffers+linkSpecialOffers =+    LinkSpecialOffers+    { _lsoFreeShippingMin = Nothing+    , _lsoPercentOff = Nothing+    , _lsoPriceCut = Nothing+    , _lsoPriceCutMin = Nothing+    , _lsoPercentOffMin = Nothing+    , _lsoFreeShipping = Nothing+    , _lsoPromotionCodes = Nothing+    , _lsoFreeGift = Nothing+    }++-- | Minimum purchase amount for free shipping promotion+lsoFreeShippingMin :: Lens' LinkSpecialOffers (Maybe Money)+lsoFreeShippingMin+  = lens _lsoFreeShippingMin+      (\ s a -> s{_lsoFreeShippingMin = a})++-- | Percent off on the purchase+lsoPercentOff :: Lens' LinkSpecialOffers (Maybe Double)+lsoPercentOff+  = lens _lsoPercentOff+      (\ s a -> s{_lsoPercentOff = a})+      . mapping _Coerce++-- | Price cut on the purchase+lsoPriceCut :: Lens' LinkSpecialOffers (Maybe Money)+lsoPriceCut+  = lens _lsoPriceCut (\ s a -> s{_lsoPriceCut = a})++-- | Minimum purchase amount for price cut promotion+lsoPriceCutMin :: Lens' LinkSpecialOffers (Maybe Money)+lsoPriceCutMin+  = lens _lsoPriceCutMin+      (\ s a -> s{_lsoPriceCutMin = a})++-- | Minimum purchase amount for percent off promotion+lsoPercentOffMin :: Lens' LinkSpecialOffers (Maybe Money)+lsoPercentOffMin+  = lens _lsoPercentOffMin+      (\ s a -> s{_lsoPercentOffMin = a})++-- | Whether there is free shipping+lsoFreeShipping :: Lens' LinkSpecialOffers (Maybe Bool)+lsoFreeShipping+  = lens _lsoFreeShipping+      (\ s a -> s{_lsoFreeShipping = a})++-- | List of promotion code associated with the link+lsoPromotionCodes :: Lens' LinkSpecialOffers [Text]+lsoPromotionCodes+  = lens _lsoPromotionCodes+      (\ s a -> s{_lsoPromotionCodes = a})+      . _Default+      . _Coerce++-- | Whether there is a free gift+lsoFreeGift :: Lens' LinkSpecialOffers (Maybe Bool)+lsoFreeGift+  = lens _lsoFreeGift (\ s a -> s{_lsoFreeGift = a})++instance FromJSON LinkSpecialOffers where+        parseJSON+          = withObject "LinkSpecialOffers"+              (\ o ->+                 LinkSpecialOffers <$>+                   (o .:? "freeShippingMin") <*> (o .:? "percentOff")+                     <*> (o .:? "priceCut")+                     <*> (o .:? "priceCutMin")+                     <*> (o .:? "percentOffMin")+                     <*> (o .:? "freeShipping")+                     <*> (o .:? "promotionCodes" .!= mempty)+                     <*> (o .:? "freeGift"))++instance ToJSON LinkSpecialOffers where+        toJSON LinkSpecialOffers{..}+          = object+              (catMaybes+                 [("freeShippingMin" .=) <$> _lsoFreeShippingMin,+                  ("percentOff" .=) <$> _lsoPercentOff,+                  ("priceCut" .=) <$> _lsoPriceCut,+                  ("priceCutMin" .=) <$> _lsoPriceCutMin,+                  ("percentOffMin" .=) <$> _lsoPercentOffMin,+                  ("freeShipping" .=) <$> _lsoFreeShipping,+                  ("promotionCodes" .=) <$> _lsoPromotionCodes,+                  ("freeGift" .=) <$> _lsoFreeGift])++--+-- /See:/ 'publishers' smart constructor.+data Publishers = Publishers+    { _pNextPageToken :: !(Maybe Text)+    , _pKind          :: !Text+    , _pItems         :: !(Maybe [Publisher])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Publishers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pNextPageToken'+--+-- * 'pKind'+--+-- * 'pItems'+publishers+    :: Publishers+publishers =+    Publishers+    { _pNextPageToken = Nothing+    , _pKind = "gan#publishers"+    , _pItems = Nothing+    }++-- | The \'pageToken\' to pass to the next request to get the next page, if+-- there are more to retrieve.+pNextPageToken :: Lens' Publishers (Maybe Text)+pNextPageToken+  = lens _pNextPageToken+      (\ s a -> s{_pNextPageToken = a})++-- | The kind for a page of entities.+pKind :: Lens' Publishers Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | The entity list.+pItems :: Lens' Publishers [Publisher]+pItems+  = lens _pItems (\ s a -> s{_pItems = a}) . _Default .+      _Coerce++instance FromJSON Publishers where+        parseJSON+          = withObject "Publishers"+              (\ o ->+                 Publishers <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "gan#publishers")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Publishers where+        toJSON Publishers{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _pNextPageToken,+                  Just ("kind" .= _pKind), ("items" .=) <$> _pItems])++-- | An AdvertiserResource.+--+-- /See:/ 'advertiser' smart constructor.+data Advertiser = Advertiser+    { _advAllowPublisherCreatedLinks :: !(Maybe Bool)+    , _advContactPhone               :: !(Maybe Text)+    , _advContactEmail               :: !(Maybe Text)+    , _advStatus                     :: !(Maybe Text)+    , _advLogoURL                    :: !(Maybe Text)+    , _advKind                       :: !Text+    , _advCategory                   :: !(Maybe Text)+    , _advSiteURL                    :: !(Maybe Text)+    , _advPayoutRank                 :: !(Maybe Text)+    , _advJoinDate                   :: !(Maybe DateTime')+    , _advDefaultLinkId              :: !(Maybe (Textual Int64))+    , _advRedirectDomains            :: !(Maybe [Text])+    , _advName                       :: !(Maybe Text)+    , _advProductFeedsEnabled        :: !(Maybe Bool)+    , _advMerchantCenterIds          :: !(Maybe [Textual Int64])+    , _advEpcSevenDayAverage         :: !(Maybe Money)+    , _advItem                       :: !(Maybe Advertiser)+    , _advId                         :: !(Maybe (Textual Int64))+    , _advEpcNinetyDayAverage        :: !(Maybe Money)+    , _advCommissionDuration         :: !(Maybe (Textual Int32))+    , _advDescription                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Advertiser' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'advAllowPublisherCreatedLinks'+--+-- * 'advContactPhone'+--+-- * 'advContactEmail'+--+-- * 'advStatus'+--+-- * 'advLogoURL'+--+-- * 'advKind'+--+-- * 'advCategory'+--+-- * 'advSiteURL'+--+-- * 'advPayoutRank'+--+-- * 'advJoinDate'+--+-- * 'advDefaultLinkId'+--+-- * 'advRedirectDomains'+--+-- * 'advName'+--+-- * 'advProductFeedsEnabled'+--+-- * 'advMerchantCenterIds'+--+-- * 'advEpcSevenDayAverage'+--+-- * 'advItem'+--+-- * 'advId'+--+-- * 'advEpcNinetyDayAverage'+--+-- * 'advCommissionDuration'+--+-- * 'advDescription'+advertiser+    :: Advertiser+advertiser =+    Advertiser+    { _advAllowPublisherCreatedLinks = Nothing+    , _advContactPhone = Nothing+    , _advContactEmail = Nothing+    , _advStatus = Nothing+    , _advLogoURL = Nothing+    , _advKind = "gan#advertiser"+    , _advCategory = Nothing+    , _advSiteURL = Nothing+    , _advPayoutRank = Nothing+    , _advJoinDate = Nothing+    , _advDefaultLinkId = Nothing+    , _advRedirectDomains = Nothing+    , _advName = Nothing+    , _advProductFeedsEnabled = Nothing+    , _advMerchantCenterIds = Nothing+    , _advEpcSevenDayAverage = Nothing+    , _advItem = Nothing+    , _advId = Nothing+    , _advEpcNinetyDayAverage = Nothing+    , _advCommissionDuration = Nothing+    , _advDescription = Nothing+    }++-- | True if the advertiser allows publisher created links, otherwise false.+advAllowPublisherCreatedLinks :: Lens' Advertiser (Maybe Bool)+advAllowPublisherCreatedLinks+  = lens _advAllowPublisherCreatedLinks+      (\ s a -> s{_advAllowPublisherCreatedLinks = a})++-- | Phone that this advertiser would like publishers to contact them with.+advContactPhone :: Lens' Advertiser (Maybe Text)+advContactPhone+  = lens _advContactPhone+      (\ s a -> s{_advContactPhone = a})++-- | Email that this advertiser would like publishers to contact them with.+advContactEmail :: Lens' Advertiser (Maybe Text)+advContactEmail+  = lens _advContactEmail+      (\ s a -> s{_advContactEmail = a})++-- | The status of the requesting publisher\'s relationship this advertiser.+advStatus :: Lens' Advertiser (Maybe Text)+advStatus+  = lens _advStatus (\ s a -> s{_advStatus = a})++-- | URL to the logo this advertiser uses on the Google Affiliate Network.+advLogoURL :: Lens' Advertiser (Maybe Text)+advLogoURL+  = lens _advLogoURL (\ s a -> s{_advLogoURL = a})++-- | The kind for an advertiser.+advKind :: Lens' Advertiser Text+advKind = lens _advKind (\ s a -> s{_advKind = a})++-- | Category that this advertiser belongs to. A valid list of categories can+-- be found here:+-- http:\/\/www.google.com\/support\/affiliatenetwork\/advertiser\/bin\/answer.py?hl=en&answer=107581+advCategory :: Lens' Advertiser (Maybe Text)+advCategory+  = lens _advCategory (\ s a -> s{_advCategory = a})++-- | URL of the website this advertiser advertises from.+advSiteURL :: Lens' Advertiser (Maybe Text)+advSiteURL+  = lens _advSiteURL (\ s a -> s{_advSiteURL = a})++-- | A rank based on commissions paid to publishers over the past 90 days. A+-- number between 1 and 4 where 4 means the top quartile (most money paid)+-- and 1 means the bottom quartile (least money paid).+advPayoutRank :: Lens' Advertiser (Maybe Text)+advPayoutRank+  = lens _advPayoutRank+      (\ s a -> s{_advPayoutRank = a})++-- | Date that this advertiser was approved as a Google Affiliate Network+-- advertiser.+advJoinDate :: Lens' Advertiser (Maybe UTCTime)+advJoinDate+  = lens _advJoinDate (\ s a -> s{_advJoinDate = a}) .+      mapping _DateTime++-- | The default link id for this advertiser.+advDefaultLinkId :: Lens' Advertiser (Maybe Int64)+advDefaultLinkId+  = lens _advDefaultLinkId+      (\ s a -> s{_advDefaultLinkId = a})+      . mapping _Coerce++-- | List of redirect URLs for this advertiser+advRedirectDomains :: Lens' Advertiser [Text]+advRedirectDomains+  = lens _advRedirectDomains+      (\ s a -> s{_advRedirectDomains = a})+      . _Default+      . _Coerce++-- | The name of this advertiser.+advName :: Lens' Advertiser (Maybe Text)+advName = lens _advName (\ s a -> s{_advName = a})++-- | Allows advertisers to submit product listings to Google Product Search.+advProductFeedsEnabled :: Lens' Advertiser (Maybe Bool)+advProductFeedsEnabled+  = lens _advProductFeedsEnabled+      (\ s a -> s{_advProductFeedsEnabled = a})++-- | List of merchant center ids for this advertiser+advMerchantCenterIds :: Lens' Advertiser [Int64]+advMerchantCenterIds+  = lens _advMerchantCenterIds+      (\ s a -> s{_advMerchantCenterIds = a})+      . _Default+      . _Coerce++-- | The sum of fees paid to publishers divided by the total number of clicks+-- over the past seven days. This value should be multiplied by 100 at the+-- time of display.+advEpcSevenDayAverage :: Lens' Advertiser (Maybe Money)+advEpcSevenDayAverage+  = lens _advEpcSevenDayAverage+      (\ s a -> s{_advEpcSevenDayAverage = a})++-- | The requested advertiser.+advItem :: Lens' Advertiser (Maybe Advertiser)+advItem = lens _advItem (\ s a -> s{_advItem = a})++-- | The ID of this advertiser.+advId :: Lens' Advertiser (Maybe Int64)+advId+  = lens _advId (\ s a -> s{_advId = a}) .+      mapping _Coerce++-- | The sum of fees paid to publishers divided by the total number of clicks+-- over the past three months. This value should be multiplied by 100 at+-- the time of display.+advEpcNinetyDayAverage :: Lens' Advertiser (Maybe Money)+advEpcNinetyDayAverage+  = lens _advEpcNinetyDayAverage+      (\ s a -> s{_advEpcNinetyDayAverage = a})++-- | The longest possible length of a commission (how long the cookies on the+-- customer\'s browser last before they expire).+advCommissionDuration :: Lens' Advertiser (Maybe Int32)+advCommissionDuration+  = lens _advCommissionDuration+      (\ s a -> s{_advCommissionDuration = a})+      . mapping _Coerce++-- | Description of the website the advertiser advertises from.+advDescription :: Lens' Advertiser (Maybe Text)+advDescription+  = lens _advDescription+      (\ s a -> s{_advDescription = a})++instance FromJSON Advertiser where+        parseJSON+          = withObject "Advertiser"+              (\ o ->+                 Advertiser <$>+                   (o .:? "allowPublisherCreatedLinks") <*>+                     (o .:? "contactPhone")+                     <*> (o .:? "contactEmail")+                     <*> (o .:? "status")+                     <*> (o .:? "logoUrl")+                     <*> (o .:? "kind" .!= "gan#advertiser")+                     <*> (o .:? "category")+                     <*> (o .:? "siteUrl")+                     <*> (o .:? "payoutRank")+                     <*> (o .:? "joinDate")+                     <*> (o .:? "defaultLinkId")+                     <*> (o .:? "redirectDomains" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "productFeedsEnabled")+                     <*> (o .:? "merchantCenterIds" .!= mempty)+                     <*> (o .:? "epcSevenDayAverage")+                     <*> (o .:? "item")+                     <*> (o .:? "id")+                     <*> (o .:? "epcNinetyDayAverage")+                     <*> (o .:? "commissionDuration")+                     <*> (o .:? "description"))++instance ToJSON Advertiser where+        toJSON Advertiser{..}+          = object+              (catMaybes+                 [("allowPublisherCreatedLinks" .=) <$>+                    _advAllowPublisherCreatedLinks,+                  ("contactPhone" .=) <$> _advContactPhone,+                  ("contactEmail" .=) <$> _advContactEmail,+                  ("status" .=) <$> _advStatus,+                  ("logoUrl" .=) <$> _advLogoURL,+                  Just ("kind" .= _advKind),+                  ("category" .=) <$> _advCategory,+                  ("siteUrl" .=) <$> _advSiteURL,+                  ("payoutRank" .=) <$> _advPayoutRank,+                  ("joinDate" .=) <$> _advJoinDate,+                  ("defaultLinkId" .=) <$> _advDefaultLinkId,+                  ("redirectDomains" .=) <$> _advRedirectDomains,+                  ("name" .=) <$> _advName,+                  ("productFeedsEnabled" .=) <$>+                    _advProductFeedsEnabled,+                  ("merchantCenterIds" .=) <$> _advMerchantCenterIds,+                  ("epcSevenDayAverage" .=) <$> _advEpcSevenDayAverage,+                  ("item" .=) <$> _advItem, ("id" .=) <$> _advId,+                  ("epcNinetyDayAverage" .=) <$>+                    _advEpcNinetyDayAverage,+                  ("commissionDuration" .=) <$> _advCommissionDuration,+                  ("description" .=) <$> _advDescription])++-- | A credit card offer. There are many possible result fields. We provide+-- two different views of the data, or \"projections.\" The \"full\"+-- projection includes every result field. And the \"summary\" projection,+-- which is the default, includes a smaller subset of the fields. The+-- fields included in the summary projection are marked as such in their+-- descriptions.+--+-- /See:/ 'ccOffer' smart constructor.+data CcOffer = CcOffer+    { _cMinimumFinanceCharge          :: !(Maybe Text)+    , _cTrackingURL                   :: !(Maybe Text)+    , _cProhibitedCategories          :: !(Maybe [Text])+    , _cBalanceComputationMethod      :: !(Maybe Text)+    , _cInitialSetupAndProcessingFee  :: !(Maybe Text)+    , _cReturnedPaymentFee            :: !(Maybe Text)+    , _cAgeMinimumDetails             :: !(Maybe Text)+    , _cVariableRatesUpdateFrequency  :: !(Maybe Text)+    , _cCreditLimitMin                :: !(Maybe (Textual Double))+    , _cTravelInsurance               :: !(Maybe Text)+    , _cApprovedCategories            :: !(Maybe [Text])+    , _cAnnualFeeDisplay              :: !(Maybe Text)+    , _cOverLimitFee                  :: !(Maybe Text)+    , _cMaxPurchaseRate               :: !(Maybe (Textual Double))+    , _cAgeMinimum                    :: !(Maybe (Textual Double))+    , _cVariableRatesLastUpdated      :: !(Maybe Text)+    , _cIntroCashAdvanceTerms         :: !(Maybe Text)+    , _cIssuerWebsite                 :: !(Maybe Text)+    , _cLuggageInsurance              :: !(Maybe Text)+    , _cKind                          :: !Text+    , _cRewardsHaveBlackoutDates      :: !(Maybe Bool)+    , _cDisclaimer                    :: !(Maybe Text)+    , _cAdditionalCardHolderFee       :: !(Maybe Text)+    , _cExistingCustomerOnly          :: !(Maybe Bool)+    , _cEmergencyInsurance            :: !(Maybe Text)+    , _cNetwork                       :: !(Maybe Text)+    , _cCashAdvanceTerms              :: !(Maybe Text)+    , _cStatementCopyFee              :: !(Maybe Text)+    , _cAprDisplay                    :: !(Maybe Text)+    , _cOffersImmediateCashReward     :: !(Maybe Bool)+    , _cRewards                       :: !(Maybe [CcOfferRewardsItem])+    , _cCardType                      :: !(Maybe Text)+    , _cImageURL                      :: !(Maybe Text)+    , _cCreditLimitMax                :: !(Maybe (Textual Double))+    , _cLandingPageURL                :: !(Maybe Text)+    , _cAnnualFee                     :: !(Maybe (Textual Double))+    , _cRewardsExpire                 :: !(Maybe Bool)+    , _cFirstYearAnnualFee            :: !(Maybe (Textual Double))+    , _cCarRentalInsurance            :: !(Maybe Text)+    , _cPurchaseRateAdditionalDetails :: !(Maybe Text)+    , _cOfferId                       :: !(Maybe Text)+    , _cGracePeriodDisplay            :: !(Maybe Text)+    , _cIntroPurchaseTerms            :: !(Maybe Text)+    , _cCreditRatingDisplay           :: !(Maybe Text)+    , _cBalanceTransferTerms          :: !(Maybe Text)+    , _cLatePaymentFee                :: !(Maybe Text)+    , _cCardBenefits                  :: !(Maybe [Text])+    , _cIssuer                        :: !(Maybe Text)+    , _cCardName                      :: !(Maybe Text)+    , _cMinPurchaseRate               :: !(Maybe (Textual Double))+    , _cFraudLiability                :: !(Maybe Text)+    , _cForeignCurrencyTransactionFee :: !(Maybe Text)+    , _cExtendedWarranty              :: !(Maybe Text)+    , _cAnnualRewardMaximum           :: !(Maybe (Textual Double))+    , _cIssuerId                      :: !(Maybe Text)+    , _cIntroBalanceTransferTerms     :: !(Maybe Text)+    , _cDefaultFees                   :: !(Maybe [CcOfferDefaultFeesItem])+    , _cAdditionalCardBenefits        :: !(Maybe [Text])+    , _cRewardUnit                    :: !(Maybe Text)+    , _cBonusRewards                  :: !(Maybe [CcOfferBonusRewardsItem])+    , _cFlightAccidentInsurance       :: !(Maybe Text)+    , _cRewardPartner                 :: !(Maybe Text)+    , _cPurchaseRateType              :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOffer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cMinimumFinanceCharge'+--+-- * 'cTrackingURL'+--+-- * 'cProhibitedCategories'+--+-- * 'cBalanceComputationMethod'+--+-- * 'cInitialSetupAndProcessingFee'+--+-- * 'cReturnedPaymentFee'+--+-- * 'cAgeMinimumDetails'+--+-- * 'cVariableRatesUpdateFrequency'+--+-- * 'cCreditLimitMin'+--+-- * 'cTravelInsurance'+--+-- * 'cApprovedCategories'+--+-- * 'cAnnualFeeDisplay'+--+-- * 'cOverLimitFee'+--+-- * 'cMaxPurchaseRate'+--+-- * 'cAgeMinimum'+--+-- * 'cVariableRatesLastUpdated'+--+-- * 'cIntroCashAdvanceTerms'+--+-- * 'cIssuerWebsite'+--+-- * 'cLuggageInsurance'+--+-- * 'cKind'+--+-- * 'cRewardsHaveBlackoutDates'+--+-- * 'cDisclaimer'+--+-- * 'cAdditionalCardHolderFee'+--+-- * 'cExistingCustomerOnly'+--+-- * 'cEmergencyInsurance'+--+-- * 'cNetwork'+--+-- * 'cCashAdvanceTerms'+--+-- * 'cStatementCopyFee'+--+-- * 'cAprDisplay'+--+-- * 'cOffersImmediateCashReward'+--+-- * 'cRewards'+--+-- * 'cCardType'+--+-- * 'cImageURL'+--+-- * 'cCreditLimitMax'+--+-- * 'cLandingPageURL'+--+-- * 'cAnnualFee'+--+-- * 'cRewardsExpire'+--+-- * 'cFirstYearAnnualFee'+--+-- * 'cCarRentalInsurance'+--+-- * 'cPurchaseRateAdditionalDetails'+--+-- * 'cOfferId'+--+-- * 'cGracePeriodDisplay'+--+-- * 'cIntroPurchaseTerms'+--+-- * 'cCreditRatingDisplay'+--+-- * 'cBalanceTransferTerms'+--+-- * 'cLatePaymentFee'+--+-- * 'cCardBenefits'+--+-- * 'cIssuer'+--+-- * 'cCardName'+--+-- * 'cMinPurchaseRate'+--+-- * 'cFraudLiability'+--+-- * 'cForeignCurrencyTransactionFee'+--+-- * 'cExtendedWarranty'+--+-- * 'cAnnualRewardMaximum'+--+-- * 'cIssuerId'+--+-- * 'cIntroBalanceTransferTerms'+--+-- * 'cDefaultFees'+--+-- * 'cAdditionalCardBenefits'+--+-- * 'cRewardUnit'+--+-- * 'cBonusRewards'+--+-- * 'cFlightAccidentInsurance'+--+-- * 'cRewardPartner'+--+-- * 'cPurchaseRateType'+ccOffer+    :: CcOffer+ccOffer =+    CcOffer+    { _cMinimumFinanceCharge = Nothing+    , _cTrackingURL = Nothing+    , _cProhibitedCategories = Nothing+    , _cBalanceComputationMethod = Nothing+    , _cInitialSetupAndProcessingFee = Nothing+    , _cReturnedPaymentFee = Nothing+    , _cAgeMinimumDetails = Nothing+    , _cVariableRatesUpdateFrequency = Nothing+    , _cCreditLimitMin = Nothing+    , _cTravelInsurance = Nothing+    , _cApprovedCategories = Nothing+    , _cAnnualFeeDisplay = Nothing+    , _cOverLimitFee = Nothing+    , _cMaxPurchaseRate = Nothing+    , _cAgeMinimum = Nothing+    , _cVariableRatesLastUpdated = Nothing+    , _cIntroCashAdvanceTerms = Nothing+    , _cIssuerWebsite = Nothing+    , _cLuggageInsurance = Nothing+    , _cKind = "gan#ccOffer"+    , _cRewardsHaveBlackoutDates = Nothing+    , _cDisclaimer = Nothing+    , _cAdditionalCardHolderFee = Nothing+    , _cExistingCustomerOnly = Nothing+    , _cEmergencyInsurance = Nothing+    , _cNetwork = Nothing+    , _cCashAdvanceTerms = Nothing+    , _cStatementCopyFee = Nothing+    , _cAprDisplay = Nothing+    , _cOffersImmediateCashReward = Nothing+    , _cRewards = Nothing+    , _cCardType = Nothing+    , _cImageURL = Nothing+    , _cCreditLimitMax = Nothing+    , _cLandingPageURL = Nothing+    , _cAnnualFee = Nothing+    , _cRewardsExpire = Nothing+    , _cFirstYearAnnualFee = Nothing+    , _cCarRentalInsurance = Nothing+    , _cPurchaseRateAdditionalDetails = Nothing+    , _cOfferId = Nothing+    , _cGracePeriodDisplay = Nothing+    , _cIntroPurchaseTerms = Nothing+    , _cCreditRatingDisplay = Nothing+    , _cBalanceTransferTerms = Nothing+    , _cLatePaymentFee = Nothing+    , _cCardBenefits = Nothing+    , _cIssuer = Nothing+    , _cCardName = Nothing+    , _cMinPurchaseRate = Nothing+    , _cFraudLiability = Nothing+    , _cForeignCurrencyTransactionFee = Nothing+    , _cExtendedWarranty = Nothing+    , _cAnnualRewardMaximum = Nothing+    , _cIssuerId = Nothing+    , _cIntroBalanceTransferTerms = Nothing+    , _cDefaultFees = Nothing+    , _cAdditionalCardBenefits = Nothing+    , _cRewardUnit = Nothing+    , _cBonusRewards = Nothing+    , _cFlightAccidentInsurance = Nothing+    , _cRewardPartner = Nothing+    , _cPurchaseRateType = Nothing+    }++-- | Text describing how much missing the grace period will cost.+cMinimumFinanceCharge :: Lens' CcOffer (Maybe Text)+cMinimumFinanceCharge+  = lens _cMinimumFinanceCharge+      (\ s a -> s{_cMinimumFinanceCharge = a})++-- | The link to ping to register a click on this offer. A summary field.+cTrackingURL :: Lens' CcOffer (Maybe Text)+cTrackingURL+  = lens _cTrackingURL (\ s a -> s{_cTrackingURL = a})++-- | Categories in which the issuer does not wish the card to be displayed. A+-- summary field.+cProhibitedCategories :: Lens' CcOffer [Text]+cProhibitedCategories+  = lens _cProhibitedCategories+      (\ s a -> s{_cProhibitedCategories = a})+      . _Default+      . _Coerce++-- | Text describing how the balance is computed. A summary field.+cBalanceComputationMethod :: Lens' CcOffer (Maybe Text)+cBalanceComputationMethod+  = lens _cBalanceComputationMethod+      (\ s a -> s{_cBalanceComputationMethod = a})++-- | Fee for setting up the card.+cInitialSetupAndProcessingFee :: Lens' CcOffer (Maybe Text)+cInitialSetupAndProcessingFee+  = lens _cInitialSetupAndProcessingFee+      (\ s a -> s{_cInitialSetupAndProcessingFee = a})++-- | Text describing the fee for a payment that doesn\'t clear. A summary+-- field.+cReturnedPaymentFee :: Lens' CcOffer (Maybe Text)+cReturnedPaymentFee+  = lens _cReturnedPaymentFee+      (\ s a -> s{_cReturnedPaymentFee = a})++-- | Text describing the details of the age minimum restriction.+cAgeMinimumDetails :: Lens' CcOffer (Maybe Text)+cAgeMinimumDetails+  = lens _cAgeMinimumDetails+      (\ s a -> s{_cAgeMinimumDetails = a})++-- | How often variable rates are updated.+cVariableRatesUpdateFrequency :: Lens' CcOffer (Maybe Text)+cVariableRatesUpdateFrequency+  = lens _cVariableRatesUpdateFrequency+      (\ s a -> s{_cVariableRatesUpdateFrequency = a})++-- | The low end for credit limits the issuer imposes on recipients of this+-- card.+cCreditLimitMin :: Lens' CcOffer (Maybe Double)+cCreditLimitMin+  = lens _cCreditLimitMin+      (\ s a -> s{_cCreditLimitMin = a})+      . mapping _Coerce++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cTravelInsurance :: Lens' CcOffer (Maybe Text)+cTravelInsurance+  = lens _cTravelInsurance+      (\ s a -> s{_cTravelInsurance = a})++-- | Possible categories for this card, eg \"Low Interest\" or \"Good.\" A+-- summary field.+cApprovedCategories :: Lens' CcOffer [Text]+cApprovedCategories+  = lens _cApprovedCategories+      (\ s a -> s{_cApprovedCategories = a})+      . _Default+      . _Coerce++-- | Text describing the annual fee, including any difference for the first+-- year. A summary field.+cAnnualFeeDisplay :: Lens' CcOffer (Maybe Text)+cAnnualFeeDisplay+  = lens _cAnnualFeeDisplay+      (\ s a -> s{_cAnnualFeeDisplay = a})++-- | Fee for exceeding the card\'s charge limit.+cOverLimitFee :: Lens' CcOffer (Maybe Text)+cOverLimitFee+  = lens _cOverLimitFee+      (\ s a -> s{_cOverLimitFee = a})++-- | The highest interest rate the issuer charges on this card. Expressed as+-- an absolute number, not as a percentage.+cMaxPurchaseRate :: Lens' CcOffer (Maybe Double)+cMaxPurchaseRate+  = lens _cMaxPurchaseRate+      (\ s a -> s{_cMaxPurchaseRate = a})+      . mapping _Coerce++-- | The youngest a recipient of this card may be.+cAgeMinimum :: Lens' CcOffer (Maybe Double)+cAgeMinimum+  = lens _cAgeMinimum (\ s a -> s{_cAgeMinimum = a}) .+      mapping _Coerce++-- | When variable rates were last updated.+cVariableRatesLastUpdated :: Lens' CcOffer (Maybe Text)+cVariableRatesLastUpdated+  = lens _cVariableRatesLastUpdated+      (\ s a -> s{_cVariableRatesLastUpdated = a})++-- | Text describing the terms for introductory period cash advances. A+-- summary field.+cIntroCashAdvanceTerms :: Lens' CcOffer (Maybe Text)+cIntroCashAdvanceTerms+  = lens _cIntroCashAdvanceTerms+      (\ s a -> s{_cIntroCashAdvanceTerms = a})++-- | The generic link to the issuer\'s site.+cIssuerWebsite :: Lens' CcOffer (Maybe Text)+cIssuerWebsite+  = lens _cIssuerWebsite+      (\ s a -> s{_cIssuerWebsite = a})++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cLuggageInsurance :: Lens' CcOffer (Maybe Text)+cLuggageInsurance+  = lens _cLuggageInsurance+      (\ s a -> s{_cLuggageInsurance = a})++-- | The kind for one credit card offer. A summary field.+cKind :: Lens' CcOffer Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | For airline miles rewards, tells whether blackout dates apply to the+-- miles.+cRewardsHaveBlackoutDates :: Lens' CcOffer (Maybe Bool)+cRewardsHaveBlackoutDates+  = lens _cRewardsHaveBlackoutDates+      (\ s a -> s{_cRewardsHaveBlackoutDates = a})++-- | A notice that, if present, is referenced via an asterisk by many of the+-- other summary fields. If this field is present, it will always start+-- with an asterisk (\"*\"), and must be prominently displayed with the+-- offer. A summary field.+cDisclaimer :: Lens' CcOffer (Maybe Text)+cDisclaimer+  = lens _cDisclaimer (\ s a -> s{_cDisclaimer = a})++-- | Any extra fees levied on card holders.+cAdditionalCardHolderFee :: Lens' CcOffer (Maybe Text)+cAdditionalCardHolderFee+  = lens _cAdditionalCardHolderFee+      (\ s a -> s{_cAdditionalCardHolderFee = a})++-- | Whether this card is only available to existing customers of the issuer.+cExistingCustomerOnly :: Lens' CcOffer (Maybe Bool)+cExistingCustomerOnly+  = lens _cExistingCustomerOnly+      (\ s a -> s{_cExistingCustomerOnly = a})++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cEmergencyInsurance :: Lens' CcOffer (Maybe Text)+cEmergencyInsurance+  = lens _cEmergencyInsurance+      (\ s a -> s{_cEmergencyInsurance = a})++-- | Which network (eg Visa) the card belongs to. A summary field.+cNetwork :: Lens' CcOffer (Maybe Text)+cNetwork = lens _cNetwork (\ s a -> s{_cNetwork = a})++-- | Text describing the terms for cash advances. A summary field.+cCashAdvanceTerms :: Lens' CcOffer (Maybe Text)+cCashAdvanceTerms+  = lens _cCashAdvanceTerms+      (\ s a -> s{_cCashAdvanceTerms = a})++-- | Fee for requesting a copy of your statement.+cStatementCopyFee :: Lens' CcOffer (Maybe Text)+cStatementCopyFee+  = lens _cStatementCopyFee+      (\ s a -> s{_cStatementCopyFee = a})++-- | Text describing the purchase APR. A summary field.+cAprDisplay :: Lens' CcOffer (Maybe Text)+cAprDisplay+  = lens _cAprDisplay (\ s a -> s{_cAprDisplay = a})++-- | Whether a cash reward program lets you get cash back sooner than end of+-- year or other longish period.+cOffersImmediateCashReward :: Lens' CcOffer (Maybe Bool)+cOffersImmediateCashReward+  = lens _cOffersImmediateCashReward+      (\ s a -> s{_cOffersImmediateCashReward = a})++-- | For cards with rewards programs, detailed rules about how the program+-- works.+cRewards :: Lens' CcOffer [CcOfferRewardsItem]+cRewards+  = lens _cRewards (\ s a -> s{_cRewards = a}) .+      _Default+      . _Coerce++-- | What kind of credit card this is, for example secured or unsecured.+cCardType :: Lens' CcOffer (Maybe Text)+cCardType+  = lens _cCardType (\ s a -> s{_cCardType = a})++-- | The link to the image of the card that is shown on Connect Commerce. A+-- summary field.+cImageURL :: Lens' CcOffer (Maybe Text)+cImageURL+  = lens _cImageURL (\ s a -> s{_cImageURL = a})++-- | The high end for credit limits the issuer imposes on recipients of this+-- card.+cCreditLimitMax :: Lens' CcOffer (Maybe Double)+cCreditLimitMax+  = lens _cCreditLimitMax+      (\ s a -> s{_cCreditLimitMax = a})+      . mapping _Coerce++-- | The link to the issuer\'s page for this card. A summary field.+cLandingPageURL :: Lens' CcOffer (Maybe Text)+cLandingPageURL+  = lens _cLandingPageURL+      (\ s a -> s{_cLandingPageURL = a})++-- | The ongoing annual fee, in dollars.+cAnnualFee :: Lens' CcOffer (Maybe Double)+cAnnualFee+  = lens _cAnnualFee (\ s a -> s{_cAnnualFee = a}) .+      mapping _Coerce++-- | Whether accumulated rewards ever expire.+cRewardsExpire :: Lens' CcOffer (Maybe Bool)+cRewardsExpire+  = lens _cRewardsExpire+      (\ s a -> s{_cRewardsExpire = a})++-- | The annual fee for the first year, if different from the ongoing fee.+-- Optional.+cFirstYearAnnualFee :: Lens' CcOffer (Maybe Double)+cFirstYearAnnualFee+  = lens _cFirstYearAnnualFee+      (\ s a -> s{_cFirstYearAnnualFee = a})+      . mapping _Coerce++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cCarRentalInsurance :: Lens' CcOffer (Maybe Text)+cCarRentalInsurance+  = lens _cCarRentalInsurance+      (\ s a -> s{_cCarRentalInsurance = a})++-- | Text describing any additional details for the purchase rate. A summary+-- field.+cPurchaseRateAdditionalDetails :: Lens' CcOffer (Maybe Text)+cPurchaseRateAdditionalDetails+  = lens _cPurchaseRateAdditionalDetails+      (\ s a -> s{_cPurchaseRateAdditionalDetails = a})++-- | This offer\'s ID. A summary field.+cOfferId :: Lens' CcOffer (Maybe Text)+cOfferId = lens _cOfferId (\ s a -> s{_cOfferId = a})++-- | Text describing the grace period before finance charges apply. A summary+-- field.+cGracePeriodDisplay :: Lens' CcOffer (Maybe Text)+cGracePeriodDisplay+  = lens _cGracePeriodDisplay+      (\ s a -> s{_cGracePeriodDisplay = a})++-- | Text describing the terms for introductory period purchases. A summary+-- field.+cIntroPurchaseTerms :: Lens' CcOffer (Maybe Text)+cIntroPurchaseTerms+  = lens _cIntroPurchaseTerms+      (\ s a -> s{_cIntroPurchaseTerms = a})++-- | Text describing the credit ratings required for recipients of this card,+-- for example \"Excellent\/Good.\" A summary field.+cCreditRatingDisplay :: Lens' CcOffer (Maybe Text)+cCreditRatingDisplay+  = lens _cCreditRatingDisplay+      (\ s a -> s{_cCreditRatingDisplay = a})++-- | Text describing the terms for balance transfers. A summary field.+cBalanceTransferTerms :: Lens' CcOffer (Maybe Text)+cBalanceTransferTerms+  = lens _cBalanceTransferTerms+      (\ s a -> s{_cBalanceTransferTerms = a})++-- | Text describing how much a late payment will cost, eg \"up to $35.\" A+-- summary field.+cLatePaymentFee :: Lens' CcOffer (Maybe Text)+cLatePaymentFee+  = lens _cLatePaymentFee+      (\ s a -> s{_cLatePaymentFee = a})++-- | A list of what the issuer thinks are the most important benefits of the+-- card. Usually summarizes the rewards program, if there is one. A summary+-- field.+cCardBenefits :: Lens' CcOffer [Text]+cCardBenefits+  = lens _cCardBenefits+      (\ s a -> s{_cCardBenefits = a})+      . _Default+      . _Coerce++-- | Name of card issuer. A summary field.+cIssuer :: Lens' CcOffer (Maybe Text)+cIssuer = lens _cIssuer (\ s a -> s{_cIssuer = a})++-- | The issuer\'s name for the card, including any trademark or service mark+-- designators. A summary field.+cCardName :: Lens' CcOffer (Maybe Text)+cCardName+  = lens _cCardName (\ s a -> s{_cCardName = a})++-- | The lowest interest rate the issuer charges on this card. Expressed as+-- an absolute number, not as a percentage.+cMinPurchaseRate :: Lens' CcOffer (Maybe Double)+cMinPurchaseRate+  = lens _cMinPurchaseRate+      (\ s a -> s{_cMinPurchaseRate = a})+      . mapping _Coerce++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cFraudLiability :: Lens' CcOffer (Maybe Text)+cFraudLiability+  = lens _cFraudLiability+      (\ s a -> s{_cFraudLiability = a})++-- | Fee for each transaction involving a foreign currency.+cForeignCurrencyTransactionFee :: Lens' CcOffer (Maybe Text)+cForeignCurrencyTransactionFee+  = lens _cForeignCurrencyTransactionFee+      (\ s a -> s{_cForeignCurrencyTransactionFee = a})++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cExtendedWarranty :: Lens' CcOffer (Maybe Text)+cExtendedWarranty+  = lens _cExtendedWarranty+      (\ s a -> s{_cExtendedWarranty = a})++-- | The largest number of units you may accumulate in a year.+cAnnualRewardMaximum :: Lens' CcOffer (Maybe Double)+cAnnualRewardMaximum+  = lens _cAnnualRewardMaximum+      (\ s a -> s{_cAnnualRewardMaximum = a})+      . mapping _Coerce++-- | The Google Affiliate Network ID of the advertiser making this offer.+cIssuerId :: Lens' CcOffer (Maybe Text)+cIssuerId+  = lens _cIssuerId (\ s a -> s{_cIssuerId = a})++-- | Text describing the terms for introductory period balance transfers. A+-- summary field.+cIntroBalanceTransferTerms :: Lens' CcOffer (Maybe Text)+cIntroBalanceTransferTerms+  = lens _cIntroBalanceTransferTerms+      (\ s a -> s{_cIntroBalanceTransferTerms = a})++-- | Fees for defaulting on your payments.+cDefaultFees :: Lens' CcOffer [CcOfferDefaultFeesItem]+cDefaultFees+  = lens _cDefaultFees (\ s a -> s{_cDefaultFees = a})+      . _Default+      . _Coerce++-- | More marketing copy about the card\'s benefits. A summary field.+cAdditionalCardBenefits :: Lens' CcOffer [Text]+cAdditionalCardBenefits+  = lens _cAdditionalCardBenefits+      (\ s a -> s{_cAdditionalCardBenefits = a})+      . _Default+      . _Coerce++-- | For cards with rewards programs, the unit of reward. For example, miles,+-- cash back, points.+cRewardUnit :: Lens' CcOffer (Maybe Text)+cRewardUnit+  = lens _cRewardUnit (\ s a -> s{_cRewardUnit = a})++-- | For cards with rewards programs, extra circumstances whereby additional+-- rewards may be granted.+cBonusRewards :: Lens' CcOffer [CcOfferBonusRewardsItem]+cBonusRewards+  = lens _cBonusRewards+      (\ s a -> s{_cBonusRewards = a})+      . _Default+      . _Coerce++-- | If you get coverage when you use the card for the given activity, this+-- field describes it.+cFlightAccidentInsurance :: Lens' CcOffer (Maybe Text)+cFlightAccidentInsurance+  = lens _cFlightAccidentInsurance+      (\ s a -> s{_cFlightAccidentInsurance = a})++-- | The company that redeems the rewards, if different from the issuer.+cRewardPartner :: Lens' CcOffer (Maybe Text)+cRewardPartner+  = lens _cRewardPartner+      (\ s a -> s{_cRewardPartner = a})++-- | Fixed or variable.+cPurchaseRateType :: Lens' CcOffer (Maybe Text)+cPurchaseRateType+  = lens _cPurchaseRateType+      (\ s a -> s{_cPurchaseRateType = a})++instance FromJSON CcOffer where+        parseJSON+          = withObject "CcOffer"+              (\ o ->+                 CcOffer <$>+                   (o .:? "minimumFinanceCharge") <*>+                     (o .:? "trackingUrl")+                     <*> (o .:? "prohibitedCategories" .!= mempty)+                     <*> (o .:? "balanceComputationMethod")+                     <*> (o .:? "initialSetupAndProcessingFee")+                     <*> (o .:? "returnedPaymentFee")+                     <*> (o .:? "ageMinimumDetails")+                     <*> (o .:? "variableRatesUpdateFrequency")+                     <*> (o .:? "creditLimitMin")+                     <*> (o .:? "travelInsurance")+                     <*> (o .:? "approvedCategories" .!= mempty)+                     <*> (o .:? "annualFeeDisplay")+                     <*> (o .:? "overLimitFee")+                     <*> (o .:? "maxPurchaseRate")+                     <*> (o .:? "ageMinimum")+                     <*> (o .:? "variableRatesLastUpdated")+                     <*> (o .:? "introCashAdvanceTerms")+                     <*> (o .:? "issuerWebsite")+                     <*> (o .:? "luggageInsurance")+                     <*> (o .:? "kind" .!= "gan#ccOffer")+                     <*> (o .:? "rewardsHaveBlackoutDates")+                     <*> (o .:? "disclaimer")+                     <*> (o .:? "additionalCardHolderFee")+                     <*> (o .:? "existingCustomerOnly")+                     <*> (o .:? "emergencyInsurance")+                     <*> (o .:? "network")+                     <*> (o .:? "cashAdvanceTerms")+                     <*> (o .:? "statementCopyFee")+                     <*> (o .:? "aprDisplay")+                     <*> (o .:? "offersImmediateCashReward")+                     <*> (o .:? "rewards" .!= mempty)+                     <*> (o .:? "cardType")+                     <*> (o .:? "imageUrl")+                     <*> (o .:? "creditLimitMax")+                     <*> (o .:? "landingPageUrl")+                     <*> (o .:? "annualFee")+                     <*> (o .:? "rewardsExpire")+                     <*> (o .:? "firstYearAnnualFee")+                     <*> (o .:? "carRentalInsurance")+                     <*> (o .:? "purchaseRateAdditionalDetails")+                     <*> (o .:? "offerId")+                     <*> (o .:? "gracePeriodDisplay")+                     <*> (o .:? "introPurchaseTerms")+                     <*> (o .:? "creditRatingDisplay")+                     <*> (o .:? "balanceTransferTerms")+                     <*> (o .:? "latePaymentFee")+                     <*> (o .:? "cardBenefits" .!= mempty)+                     <*> (o .:? "issuer")+                     <*> (o .:? "cardName")+                     <*> (o .:? "minPurchaseRate")+                     <*> (o .:? "fraudLiability")+                     <*> (o .:? "foreignCurrencyTransactionFee")+                     <*> (o .:? "extendedWarranty")+                     <*> (o .:? "annualRewardMaximum")+                     <*> (o .:? "issuerId")+                     <*> (o .:? "introBalanceTransferTerms")+                     <*> (o .:? "defaultFees" .!= mempty)+                     <*> (o .:? "additionalCardBenefits" .!= mempty)+                     <*> (o .:? "rewardUnit")+                     <*> (o .:? "bonusRewards" .!= mempty)+                     <*> (o .:? "flightAccidentInsurance")+                     <*> (o .:? "rewardPartner")+                     <*> (o .:? "purchaseRateType"))++instance ToJSON CcOffer where+        toJSON CcOffer{..}+          = object+              (catMaybes+                 [("minimumFinanceCharge" .=) <$>+                    _cMinimumFinanceCharge,+                  ("trackingUrl" .=) <$> _cTrackingURL,+                  ("prohibitedCategories" .=) <$>+                    _cProhibitedCategories,+                  ("balanceComputationMethod" .=) <$>+                    _cBalanceComputationMethod,+                  ("initialSetupAndProcessingFee" .=) <$>+                    _cInitialSetupAndProcessingFee,+                  ("returnedPaymentFee" .=) <$> _cReturnedPaymentFee,+                  ("ageMinimumDetails" .=) <$> _cAgeMinimumDetails,+                  ("variableRatesUpdateFrequency" .=) <$>+                    _cVariableRatesUpdateFrequency,+                  ("creditLimitMin" .=) <$> _cCreditLimitMin,+                  ("travelInsurance" .=) <$> _cTravelInsurance,+                  ("approvedCategories" .=) <$> _cApprovedCategories,+                  ("annualFeeDisplay" .=) <$> _cAnnualFeeDisplay,+                  ("overLimitFee" .=) <$> _cOverLimitFee,+                  ("maxPurchaseRate" .=) <$> _cMaxPurchaseRate,+                  ("ageMinimum" .=) <$> _cAgeMinimum,+                  ("variableRatesLastUpdated" .=) <$>+                    _cVariableRatesLastUpdated,+                  ("introCashAdvanceTerms" .=) <$>+                    _cIntroCashAdvanceTerms,+                  ("issuerWebsite" .=) <$> _cIssuerWebsite,+                  ("luggageInsurance" .=) <$> _cLuggageInsurance,+                  Just ("kind" .= _cKind),+                  ("rewardsHaveBlackoutDates" .=) <$>+                    _cRewardsHaveBlackoutDates,+                  ("disclaimer" .=) <$> _cDisclaimer,+                  ("additionalCardHolderFee" .=) <$>+                    _cAdditionalCardHolderFee,+                  ("existingCustomerOnly" .=) <$>+                    _cExistingCustomerOnly,+                  ("emergencyInsurance" .=) <$> _cEmergencyInsurance,+                  ("network" .=) <$> _cNetwork,+                  ("cashAdvanceTerms" .=) <$> _cCashAdvanceTerms,+                  ("statementCopyFee" .=) <$> _cStatementCopyFee,+                  ("aprDisplay" .=) <$> _cAprDisplay,+                  ("offersImmediateCashReward" .=) <$>+                    _cOffersImmediateCashReward,+                  ("rewards" .=) <$> _cRewards,+                  ("cardType" .=) <$> _cCardType,+                  ("imageUrl" .=) <$> _cImageURL,+                  ("creditLimitMax" .=) <$> _cCreditLimitMax,+                  ("landingPageUrl" .=) <$> _cLandingPageURL,+                  ("annualFee" .=) <$> _cAnnualFee,+                  ("rewardsExpire" .=) <$> _cRewardsExpire,+                  ("firstYearAnnualFee" .=) <$> _cFirstYearAnnualFee,+                  ("carRentalInsurance" .=) <$> _cCarRentalInsurance,+                  ("purchaseRateAdditionalDetails" .=) <$>+                    _cPurchaseRateAdditionalDetails,+                  ("offerId" .=) <$> _cOfferId,+                  ("gracePeriodDisplay" .=) <$> _cGracePeriodDisplay,+                  ("introPurchaseTerms" .=) <$> _cIntroPurchaseTerms,+                  ("creditRatingDisplay" .=) <$> _cCreditRatingDisplay,+                  ("balanceTransferTerms" .=) <$>+                    _cBalanceTransferTerms,+                  ("latePaymentFee" .=) <$> _cLatePaymentFee,+                  ("cardBenefits" .=) <$> _cCardBenefits,+                  ("issuer" .=) <$> _cIssuer,+                  ("cardName" .=) <$> _cCardName,+                  ("minPurchaseRate" .=) <$> _cMinPurchaseRate,+                  ("fraudLiability" .=) <$> _cFraudLiability,+                  ("foreignCurrencyTransactionFee" .=) <$>+                    _cForeignCurrencyTransactionFee,+                  ("extendedWarranty" .=) <$> _cExtendedWarranty,+                  ("annualRewardMaximum" .=) <$> _cAnnualRewardMaximum,+                  ("issuerId" .=) <$> _cIssuerId,+                  ("introBalanceTransferTerms" .=) <$>+                    _cIntroBalanceTransferTerms,+                  ("defaultFees" .=) <$> _cDefaultFees,+                  ("additionalCardBenefits" .=) <$>+                    _cAdditionalCardBenefits,+                  ("rewardUnit" .=) <$> _cRewardUnit,+                  ("bonusRewards" .=) <$> _cBonusRewards,+                  ("flightAccidentInsurance" .=) <$>+                    _cFlightAccidentInsurance,+                  ("rewardPartner" .=) <$> _cRewardPartner,+                  ("purchaseRateType" .=) <$> _cPurchaseRateType])++--+-- /See:/ 'links' smart constructor.+data Links = Links+    { _linNextPageToken :: !(Maybe Text)+    , _linKind          :: !Text+    , _linItems         :: !(Maybe [Link])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Links' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'linNextPageToken'+--+-- * 'linKind'+--+-- * 'linItems'+links+    :: Links+links =+    Links+    { _linNextPageToken = Nothing+    , _linKind = "gan#links"+    , _linItems = Nothing+    }++-- | The next page token.+linNextPageToken :: Lens' Links (Maybe Text)+linNextPageToken+  = lens _linNextPageToken+      (\ s a -> s{_linNextPageToken = a})++-- | The kind for a page of links.+linKind :: Lens' Links Text+linKind = lens _linKind (\ s a -> s{_linKind = a})++-- | The links.+linItems :: Lens' Links [Link]+linItems+  = lens _linItems (\ s a -> s{_linItems = a}) .+      _Default+      . _Coerce++instance FromJSON Links where+        parseJSON+          = withObject "Links"+              (\ o ->+                 Links <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "gan#links")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Links where+        toJSON Links{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _linNextPageToken,+                  Just ("kind" .= _linKind),+                  ("items" .=) <$> _linItems])++-- | A PublisherResource.+--+-- /See:/ 'publisher' smart constructor.+data Publisher = Publisher+    { _pubStatus              :: !(Maybe Text)+    , _pubKind                :: !Text+    , _pubPayoutRank          :: !(Maybe Text)+    , _pubJoinDate            :: !(Maybe DateTime')+    , _pubClassification      :: !(Maybe Text)+    , _pubName                :: !(Maybe Text)+    , _pubEpcSevenDayAverage  :: !(Maybe Money)+    , _pubItem                :: !(Maybe Publisher)+    , _pubId                  :: !(Maybe (Textual Int64))+    , _pubEpcNinetyDayAverage :: !(Maybe Money)+    , _pubSites               :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Publisher' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pubStatus'+--+-- * 'pubKind'+--+-- * 'pubPayoutRank'+--+-- * 'pubJoinDate'+--+-- * 'pubClassification'+--+-- * 'pubName'+--+-- * 'pubEpcSevenDayAverage'+--+-- * 'pubItem'+--+-- * 'pubId'+--+-- * 'pubEpcNinetyDayAverage'+--+-- * 'pubSites'+publisher+    :: Publisher+publisher =+    Publisher+    { _pubStatus = Nothing+    , _pubKind = "gan#publisher"+    , _pubPayoutRank = Nothing+    , _pubJoinDate = Nothing+    , _pubClassification = Nothing+    , _pubName = Nothing+    , _pubEpcSevenDayAverage = Nothing+    , _pubItem = Nothing+    , _pubId = Nothing+    , _pubEpcNinetyDayAverage = Nothing+    , _pubSites = Nothing+    }++-- | The status of the requesting advertiser\'s relationship with this+-- publisher.+pubStatus :: Lens' Publisher (Maybe Text)+pubStatus+  = lens _pubStatus (\ s a -> s{_pubStatus = a})++-- | The kind for a publisher.+pubKind :: Lens' Publisher Text+pubKind = lens _pubKind (\ s a -> s{_pubKind = a})++-- | A rank based on commissions paid to this publisher over the past 90+-- days. A number between 1 and 4 where 4 means the top quartile (most+-- money paid) and 1 means the bottom quartile (least money paid).+pubPayoutRank :: Lens' Publisher (Maybe Text)+pubPayoutRank+  = lens _pubPayoutRank+      (\ s a -> s{_pubPayoutRank = a})++-- | Date that this publisher was approved as a Google Affiliate Network+-- publisher.+pubJoinDate :: Lens' Publisher (Maybe UTCTime)+pubJoinDate+  = lens _pubJoinDate (\ s a -> s{_pubJoinDate = a}) .+      mapping _DateTime++-- | Classification that this publisher belongs to. See this link for all+-- publisher classifications:+-- http:\/\/www.google.com\/support\/affiliatenetwork\/advertiser\/bin\/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4+pubClassification :: Lens' Publisher (Maybe Text)+pubClassification+  = lens _pubClassification+      (\ s a -> s{_pubClassification = a})++-- | The name of this publisher.+pubName :: Lens' Publisher (Maybe Text)+pubName = lens _pubName (\ s a -> s{_pubName = a})++-- | The sum of fees paid to this publisher divided by the total number of+-- clicks over the past seven days. Values are multiplied by 100 for+-- display purposes.+pubEpcSevenDayAverage :: Lens' Publisher (Maybe Money)+pubEpcSevenDayAverage+  = lens _pubEpcSevenDayAverage+      (\ s a -> s{_pubEpcSevenDayAverage = a})++-- | The requested publisher.+pubItem :: Lens' Publisher (Maybe Publisher)+pubItem = lens _pubItem (\ s a -> s{_pubItem = a})++-- | The ID of this publisher.+pubId :: Lens' Publisher (Maybe Int64)+pubId+  = lens _pubId (\ s a -> s{_pubId = a}) .+      mapping _Coerce++-- | The sum of fees paid to this publisher divided by the total number of+-- clicks over the past three months. Values are multiplied by 100 for+-- display purposes.+pubEpcNinetyDayAverage :: Lens' Publisher (Maybe Money)+pubEpcNinetyDayAverage+  = lens _pubEpcNinetyDayAverage+      (\ s a -> s{_pubEpcNinetyDayAverage = a})++-- | Websites that this publisher uses to advertise.+pubSites :: Lens' Publisher [Text]+pubSites+  = lens _pubSites (\ s a -> s{_pubSites = a}) .+      _Default+      . _Coerce++instance FromJSON Publisher where+        parseJSON+          = withObject "Publisher"+              (\ o ->+                 Publisher <$>+                   (o .:? "status") <*>+                     (o .:? "kind" .!= "gan#publisher")+                     <*> (o .:? "payoutRank")+                     <*> (o .:? "joinDate")+                     <*> (o .:? "classification")+                     <*> (o .:? "name")+                     <*> (o .:? "epcSevenDayAverage")+                     <*> (o .:? "item")+                     <*> (o .:? "id")+                     <*> (o .:? "epcNinetyDayAverage")+                     <*> (o .:? "sites" .!= mempty))++instance ToJSON Publisher where+        toJSON Publisher{..}+          = object+              (catMaybes+                 [("status" .=) <$> _pubStatus,+                  Just ("kind" .= _pubKind),+                  ("payoutRank" .=) <$> _pubPayoutRank,+                  ("joinDate" .=) <$> _pubJoinDate,+                  ("classification" .=) <$> _pubClassification,+                  ("name" .=) <$> _pubName,+                  ("epcSevenDayAverage" .=) <$> _pubEpcSevenDayAverage,+                  ("item" .=) <$> _pubItem, ("id" .=) <$> _pubId,+                  ("epcNinetyDayAverage" .=) <$>+                    _pubEpcNinetyDayAverage,+                  ("sites" .=) <$> _pubSites])++--+-- /See:/ 'ccOfferRewardsItem' smart constructor.+data CcOfferRewardsItem = CcOfferRewardsItem+    { _coriAmount            :: !(Maybe (Textual Double))+    , _coriExpirationMonths  :: !(Maybe (Textual Double))+    , _coriCategory          :: !(Maybe Text)+    , _coriAdditionalDetails :: !(Maybe Text)+    , _coriMaxRewardTier     :: !(Maybe (Textual Double))+    , _coriMinRewardTier     :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOfferRewardsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coriAmount'+--+-- * 'coriExpirationMonths'+--+-- * 'coriCategory'+--+-- * 'coriAdditionalDetails'+--+-- * 'coriMaxRewardTier'+--+-- * 'coriMinRewardTier'+ccOfferRewardsItem+    :: CcOfferRewardsItem+ccOfferRewardsItem =+    CcOfferRewardsItem+    { _coriAmount = Nothing+    , _coriExpirationMonths = Nothing+    , _coriCategory = Nothing+    , _coriAdditionalDetails = Nothing+    , _coriMaxRewardTier = Nothing+    , _coriMinRewardTier = Nothing+    }++-- | The number of units rewarded per purchase dollar.+coriAmount :: Lens' CcOfferRewardsItem (Maybe Double)+coriAmount+  = lens _coriAmount (\ s a -> s{_coriAmount = a}) .+      mapping _Coerce++-- | How long rewards granted by this rule last.+coriExpirationMonths :: Lens' CcOfferRewardsItem (Maybe Double)+coriExpirationMonths+  = lens _coriExpirationMonths+      (\ s a -> s{_coriExpirationMonths = a})+      . mapping _Coerce++-- | The kind of purchases covered by this rule.+coriCategory :: Lens' CcOfferRewardsItem (Maybe Text)+coriCategory+  = lens _coriCategory (\ s a -> s{_coriCategory = a})++-- | Other limits, for example, if this rule only applies during an+-- introductory period.+coriAdditionalDetails :: Lens' CcOfferRewardsItem (Maybe Text)+coriAdditionalDetails+  = lens _coriAdditionalDetails+      (\ s a -> s{_coriAdditionalDetails = a})++-- | The maximum purchase amount in the given category for this rule to+-- apply.+coriMaxRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)+coriMaxRewardTier+  = lens _coriMaxRewardTier+      (\ s a -> s{_coriMaxRewardTier = a})+      . mapping _Coerce++-- | The minimum purchase amount in the given category before this rule+-- applies.+coriMinRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)+coriMinRewardTier+  = lens _coriMinRewardTier+      (\ s a -> s{_coriMinRewardTier = a})+      . mapping _Coerce++instance FromJSON CcOfferRewardsItem where+        parseJSON+          = withObject "CcOfferRewardsItem"+              (\ o ->+                 CcOfferRewardsItem <$>+                   (o .:? "amount") <*> (o .:? "expirationMonths") <*>+                     (o .:? "category")+                     <*> (o .:? "additionalDetails")+                     <*> (o .:? "maxRewardTier")+                     <*> (o .:? "minRewardTier"))++instance ToJSON CcOfferRewardsItem where+        toJSON CcOfferRewardsItem{..}+          = object+              (catMaybes+                 [("amount" .=) <$> _coriAmount,+                  ("expirationMonths" .=) <$> _coriExpirationMonths,+                  ("category" .=) <$> _coriCategory,+                  ("additionalDetails" .=) <$> _coriAdditionalDetails,+                  ("maxRewardTier" .=) <$> _coriMaxRewardTier,+                  ("minRewardTier" .=) <$> _coriMinRewardTier])
+ gen/Network/Google/Affiliates/Types/Sum.hs view
@@ -0,0 +1,753 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Affiliates.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Affiliates.Types.Sum where++import           Network.Google.Prelude++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data PublishersGetRole+    = PGRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | PGRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PublishersGetRole++instance FromText PublishersGetRole where+    fromText = \case+        "advertisers" -> Just PGRAdvertisers+        "publishers" -> Just PGRPublishers+        _ -> Nothing++instance ToText PublishersGetRole where+    toText = \case+        PGRAdvertisers -> "advertisers"+        PGRPublishers -> "publishers"++instance FromJSON PublishersGetRole where+    parseJSON = parseJSONText "PublishersGetRole"++instance ToJSON PublishersGetRole where+    toJSON = toJSONText++-- | Filters out all events that are not of the given type. Valid values:+-- \'action\', \'transaction\', or \'charge\'. Optional.+data ReportsGetEventType+    = Action+      -- ^ @action@+      -- Event type is action.+    | Charge+      -- ^ @charge@+      -- Event type is charge.+    | Transaction+      -- ^ @transaction@+      -- Event type is transaction.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ReportsGetEventType++instance FromText ReportsGetEventType where+    fromText = \case+        "action" -> Just Action+        "charge" -> Just Charge+        "transaction" -> Just Transaction+        _ -> Nothing++instance ToText ReportsGetEventType where+    toText = \case+        Action -> "action"+        Charge -> "charge"+        Transaction -> "transaction"++instance FromJSON ReportsGetEventType where+    parseJSON = parseJSONText "ReportsGetEventType"++instance ToJSON ReportsGetEventType where+    toJSON = toJSONText++-- | Filters out all events that do not have the given status. Valid values:+-- \'active\', \'canceled\', or \'invalid\'. Optional.+data ReportsGetStatus+    = Active+      -- ^ @active@+      -- Event is currently active.+    | Canceled+      -- ^ @canceled@+      -- Event is currently canceled.+    | Invalid+      -- ^ @invalid@+      -- Event is currently invalid.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ReportsGetStatus++instance FromText ReportsGetStatus where+    fromText = \case+        "active" -> Just Active+        "canceled" -> Just Canceled+        "invalid" -> Just Invalid+        _ -> Nothing++instance ToText ReportsGetStatus where+    toText = \case+        Active -> "active"+        Canceled -> "canceled"+        Invalid -> "invalid"++instance FromJSON ReportsGetStatus where+    parseJSON = parseJSONText "ReportsGetStatus"++instance ToJSON ReportsGetStatus where+    toJSON = toJSONText++-- | The promotion type.+data LinksListPromotionType+    = Coupon+      -- ^ @coupon@+    | FreeGift+      -- ^ @free_gift@+    | FreeShipping+      -- ^ @free_shipping@+    | PercentOff+      -- ^ @percent_off@+    | PriceCut+      -- ^ @price_cut@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksListPromotionType++instance FromText LinksListPromotionType where+    fromText = \case+        "coupon" -> Just Coupon+        "free_gift" -> Just FreeGift+        "free_shipping" -> Just FreeShipping+        "percent_off" -> Just PercentOff+        "price_cut" -> Just PriceCut+        _ -> Nothing++instance ToText LinksListPromotionType where+    toText = \case+        Coupon -> "coupon"+        FreeGift -> "free_gift"+        FreeShipping -> "free_shipping"+        PercentOff -> "percent_off"+        PriceCut -> "price_cut"++instance FromJSON LinksListPromotionType where+    parseJSON = parseJSONText "LinksListPromotionType"++instance ToJSON LinksListPromotionType where+    toJSON = toJSONText++-- | Filters out all events that are not of the given type. Valid values:+-- \'action\', \'transaction\', \'charge\'. Optional.+data EventsListType+    = ELTAction+      -- ^ @action@+      -- The completion of an application, sign-up, or other process. For+      -- example, an action occurs if a user clicks an ad for a credit card and+      -- completes an application for that card.+    | ELTCharge+      -- ^ @charge@+      -- A charge event is typically a payment between an advertiser, publisher+      -- or Google.+    | ELTTransaction+      -- ^ @transaction@+      -- A conversion event, typically an e-commerce transaction. Some+      -- advertisers use a transaction to record other types of events, such as+      -- magazine subscriptions.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsListType++instance FromText EventsListType where+    fromText = \case+        "action" -> Just ELTAction+        "charge" -> Just ELTCharge+        "transaction" -> Just ELTTransaction+        _ -> Nothing++instance ToText EventsListType where+    toText = \case+        ELTAction -> "action"+        ELTCharge -> "charge"+        ELTTransaction -> "transaction"++instance FromJSON EventsListType where+    parseJSON = parseJSONText "EventsListType"++instance ToJSON EventsListType where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data LinksListRole+    = LLRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | LLRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksListRole++instance FromText LinksListRole where+    fromText = \case+        "advertisers" -> Just LLRAdvertisers+        "publishers" -> Just LLRPublishers+        _ -> Nothing++instance ToText LinksListRole where+    toText = \case+        LLRAdvertisers -> "advertisers"+        LLRPublishers -> "publishers"++instance FromJSON LinksListRole where+    parseJSON = parseJSONText "LinksListRole"++instance ToJSON LinksListRole where+    toJSON = toJSONText++-- | The type of report being requested. Valid values: \'order_delta\'.+-- Required.+data ReportsGetReportType+    = OrderDelta+      -- ^ @order_delta@+      -- The order delta report type.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ReportsGetReportType++instance FromText ReportsGetReportType where+    fromText = \case+        "order_delta" -> Just OrderDelta+        _ -> Nothing++instance ToText ReportsGetReportType where+    toText = \case+        OrderDelta -> "order_delta"++instance FromJSON ReportsGetReportType where+    parseJSON = parseJSONText "ReportsGetReportType"++instance ToJSON ReportsGetReportType where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data AdvertisersListRole+    = ALRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | ALRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AdvertisersListRole++instance FromText AdvertisersListRole where+    fromText = \case+        "advertisers" -> Just ALRAdvertisers+        "publishers" -> Just ALRPublishers+        _ -> Nothing++instance ToText AdvertisersListRole where+    toText = \case+        ALRAdvertisers -> "advertisers"+        ALRPublishers -> "publishers"++instance FromJSON AdvertisersListRole where+    parseJSON = parseJSONText "AdvertisersListRole"++instance ToJSON AdvertisersListRole where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data LinksInsertRole+    = LIRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | LIRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksInsertRole++instance FromText LinksInsertRole where+    fromText = \case+        "advertisers" -> Just LIRAdvertisers+        "publishers" -> Just LIRPublishers+        _ -> Nothing++instance ToText LinksInsertRole where+    toText = \case+        LIRAdvertisers -> "advertisers"+        LIRPublishers -> "publishers"++instance FromJSON LinksInsertRole where+    parseJSON = parseJSONText "LinksInsertRole"++instance ToJSON LinksInsertRole where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data PublishersListRole+    = PLRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | PLRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PublishersListRole++instance FromText PublishersListRole where+    fromText = \case+        "advertisers" -> Just PLRAdvertisers+        "publishers" -> Just PLRPublishers+        _ -> Nothing++instance ToText PublishersListRole where+    toText = \case+        PLRAdvertisers -> "advertisers"+        PLRPublishers -> "publishers"++instance FromJSON PublishersListRole where+    parseJSON = parseJSONText "PublishersListRole"++instance ToJSON PublishersListRole where+    toJSON = toJSONText++-- | The role of the author of the link.+data LinksListAuthorship+    = LLAAdvertiser+      -- ^ @advertiser@+    | LLAPublisher+      -- ^ @publisher@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksListAuthorship++instance FromText LinksListAuthorship where+    fromText = \case+        "advertiser" -> Just LLAAdvertiser+        "publisher" -> Just LLAPublisher+        _ -> Nothing++instance ToText LinksListAuthorship where+    toText = \case+        LLAAdvertiser -> "advertiser"+        LLAPublisher -> "publisher"++instance FromJSON LinksListAuthorship where+    parseJSON = parseJSONText "LinksListAuthorship"++instance ToJSON LinksListAuthorship where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data LinksGetRole+    = LGRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | LGRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksGetRole++instance FromText LinksGetRole where+    fromText = \case+        "advertisers" -> Just LGRAdvertisers+        "publishers" -> Just LGRPublishers+        _ -> Nothing++instance ToText LinksGetRole where+    toText = \case+        LGRAdvertisers -> "advertisers"+        LGRPublishers -> "publishers"++instance FromJSON LinksGetRole where+    parseJSON = parseJSONText "LinksGetRole"++instance ToJSON LinksGetRole where+    toJSON = toJSONText++-- | The type of the link.+data LinksListLinkType+    = Banner+      -- ^ @banner@+    | Text+      -- ^ @text@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksListLinkType++instance FromText LinksListLinkType where+    fromText = \case+        "banner" -> Just Banner+        "text" -> Just Text+        _ -> Nothing++instance ToText LinksListLinkType where+    toText = \case+        Banner -> "banner"+        Text -> "text"++instance FromJSON LinksListLinkType where+    parseJSON = parseJSONText "LinksListLinkType"++instance ToJSON LinksListLinkType where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data EventsListRole+    = ELRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | ELRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsListRole++instance FromText EventsListRole where+    fromText = \case+        "advertisers" -> Just ELRAdvertisers+        "publishers" -> Just ELRPublishers+        _ -> Nothing++instance ToText EventsListRole where+    toText = \case+        ELRAdvertisers -> "advertisers"+        ELRPublishers -> "publishers"++instance FromJSON EventsListRole where+    parseJSON = parseJSONText "EventsListRole"++instance ToJSON EventsListRole where+    toJSON = toJSONText++-- | Filters out all advertisers for which do not have the given relationship+-- status with the requesting publisher.+data AdvertisersListRelationshipStatus+    = Approved+      -- ^ @approved@+      -- An advertiser that has approved your application.+    | Available+      -- ^ @available@+      -- An advertiser program that\'s accepting new publishers.+    | Deactivated+      -- ^ @deactivated@+      -- Deactivated means either the advertiser has removed you from their+      -- program, or it could also mean that you chose to remove yourself from+      -- the advertiser\'s program.+    | Declined+      -- ^ @declined@+      -- An advertiser that did not approve your application.+    | Pending+      -- ^ @pending@+      -- An advertiser program that you\'ve already applied to, but they haven\'t+      -- yet decided to approve or decline your application.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AdvertisersListRelationshipStatus++instance FromText AdvertisersListRelationshipStatus where+    fromText = \case+        "approved" -> Just Approved+        "available" -> Just Available+        "deactivated" -> Just Deactivated+        "declined" -> Just Declined+        "pending" -> Just Pending+        _ -> Nothing++instance ToText AdvertisersListRelationshipStatus where+    toText = \case+        Approved -> "approved"+        Available -> "available"+        Deactivated -> "deactivated"+        Declined -> "declined"+        Pending -> "pending"++instance FromJSON AdvertisersListRelationshipStatus where+    parseJSON = parseJSONText "AdvertisersListRelationshipStatus"++instance ToJSON AdvertisersListRelationshipStatus where+    toJSON = toJSONText++-- | The set of fields to return.+data CcOffersListProjection+    = Full+      -- ^ @full@+      -- Include all offer fields. This is the default.+    | Summary+      -- ^ @summary@+      -- Include only the basic fields needed to display an offer.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable CcOffersListProjection++instance FromText CcOffersListProjection where+    fromText = \case+        "full" -> Just Full+        "summary" -> Just Summary+        _ -> Nothing++instance ToText CcOffersListProjection where+    toText = \case+        Full -> "full"+        Summary -> "summary"++instance FromJSON CcOffersListProjection where+    parseJSON = parseJSONText "CcOffersListProjection"++instance ToJSON CcOffersListProjection where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data AdvertisersGetRole+    = AGRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | AGRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AdvertisersGetRole++instance FromText AdvertisersGetRole where+    fromText = \case+        "advertisers" -> Just AGRAdvertisers+        "publishers" -> Just AGRPublishers+        _ -> Nothing++instance ToText AdvertisersGetRole where+    toText = \case+        AGRAdvertisers -> "advertisers"+        AGRPublishers -> "publishers"++instance FromJSON AdvertisersGetRole where+    parseJSON = parseJSONText "AdvertisersGetRole"++instance ToJSON AdvertisersGetRole where+    toJSON = toJSONText++-- | Filters out all charge events that are not of the given charge type.+-- Valid values: \'other\', \'slotting_fee\', \'monthly_minimum\',+-- \'tier_bonus\', \'credit\', \'debit\'. Optional.+data EventsListChargeType+    = Credit+      -- ^ @credit@+      -- A credit increases the publisher\'s payout amount and decreases the+      -- advertiser\'s invoice amount.+    | Debit+      -- ^ @debit@+      -- A debit reduces the publisher\'s payout and increases the advertiser\'s+      -- invoice amount.+    | MonthlyMinimum+      -- ^ @monthly_minimum@+      -- A payment made to Google by an advertiser as a minimum monthly network+      -- fee.+    | Other+      -- ^ @other@+      -- Catch all. Default if unset+    | SlottingFee+      -- ^ @slotting_fee@+      -- A one time payment made from an advertiser to a publisher.+    | TierBonus+      -- ^ @tier_bonus@+      -- A payment from an advertiser to a publisher for the publisher+      -- maintaining a high tier level+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsListChargeType++instance FromText EventsListChargeType where+    fromText = \case+        "credit" -> Just Credit+        "debit" -> Just Debit+        "monthly_minimum" -> Just MonthlyMinimum+        "other" -> Just Other+        "slotting_fee" -> Just SlottingFee+        "tier_bonus" -> Just TierBonus+        _ -> Nothing++instance ToText EventsListChargeType where+    toText = \case+        Credit -> "credit"+        Debit -> "debit"+        MonthlyMinimum -> "monthly_minimum"+        Other -> "other"+        SlottingFee -> "slotting_fee"+        TierBonus -> "tier_bonus"++instance FromJSON EventsListChargeType where+    parseJSON = parseJSONText "EventsListChargeType"++instance ToJSON EventsListChargeType where+    toJSON = toJSONText++-- | Filters out all publishers for which do not have the given relationship+-- status with the requesting publisher.+data PublishersListRelationshipStatus+    = PLRSApproved+      -- ^ @approved@+      -- Publishers you\'ve approved to your program.+    | PLRSAvailable+      -- ^ @available@+      -- Publishers available for you to recruit.+    | PLRSDeactivated+      -- ^ @deactivated@+      -- A publisher that you terminated from your program. Publishers also have+      -- the ability to remove themselves from your program.+    | PLRSDeclined+      -- ^ @declined@+      -- A publisher that you did not approve to your program.+    | PLRSPending+      -- ^ @pending@+      -- Publishers that have applied to your program. We recommend reviewing and+      -- deciding on pending publishers on a weekly basis.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PublishersListRelationshipStatus++instance FromText PublishersListRelationshipStatus where+    fromText = \case+        "approved" -> Just PLRSApproved+        "available" -> Just PLRSAvailable+        "deactivated" -> Just PLRSDeactivated+        "declined" -> Just PLRSDeclined+        "pending" -> Just PLRSPending+        _ -> Nothing++instance ToText PublishersListRelationshipStatus where+    toText = \case+        PLRSApproved -> "approved"+        PLRSAvailable -> "available"+        PLRSDeactivated -> "deactivated"+        PLRSDeclined -> "declined"+        PLRSPending -> "pending"++instance FromJSON PublishersListRelationshipStatus where+    parseJSON = parseJSONText "PublishersListRelationshipStatus"++instance ToJSON PublishersListRelationshipStatus where+    toJSON = toJSONText++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+data ReportsGetRole+    = RGRAdvertisers+      -- ^ @advertisers@+      -- The requester is requesting as an advertiser.+    | RGRPublishers+      -- ^ @publishers@+      -- The requester is requesting as a publisher.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ReportsGetRole++instance FromText ReportsGetRole where+    fromText = \case+        "advertisers" -> Just RGRAdvertisers+        "publishers" -> Just RGRPublishers+        _ -> Nothing++instance ToText ReportsGetRole where+    toText = \case+        RGRAdvertisers -> "advertisers"+        RGRPublishers -> "publishers"++instance FromJSON ReportsGetRole where+    parseJSON = parseJSONText "ReportsGetRole"++instance ToJSON ReportsGetRole where+    toJSON = toJSONText++-- | The status of the relationship.+data LinksListRelationshipStatus+    = LLRSApproved+      -- ^ @approved@+    | LLRSAvailable+      -- ^ @available@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable LinksListRelationshipStatus++instance FromText LinksListRelationshipStatus where+    fromText = \case+        "approved" -> Just LLRSApproved+        "available" -> Just LLRSAvailable+        _ -> Nothing++instance ToText LinksListRelationshipStatus where+    toText = \case+        LLRSApproved -> "approved"+        LLRSAvailable -> "available"++instance FromJSON LinksListRelationshipStatus where+    parseJSON = parseJSONText "LinksListRelationshipStatus"++instance ToJSON LinksListRelationshipStatus where+    toJSON = toJSONText++-- | Filters out all events that do not have the given status. Valid values:+-- \'active\', \'canceled\'. Optional.+data EventsListStatus+    = ELSActive+      -- ^ @active@+      -- Event is currently active.+    | ELSCanceled+      -- ^ @canceled@+      -- Event is currently canceled.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsListStatus++instance FromText EventsListStatus where+    fromText = \case+        "active" -> Just ELSActive+        "canceled" -> Just ELSCanceled+        _ -> Nothing++instance ToText EventsListStatus where+    toText = \case+        ELSActive -> "active"+        ELSCanceled -> "canceled"++instance FromJSON EventsListStatus where+    parseJSON = parseJSONText "EventsListStatus"++instance ToJSON EventsListStatus where+    toJSON = toJSONText
+ gen/Network/Google/Resource/GAN/Advertisers/Get.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Advertisers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves data about a single advertiser if that the requesting+-- advertiser\/publisher has access to it. Only publishers can lookup+-- advertisers. Advertisers can request information about themselves by+-- omitting the advertiserId query parameter.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.advertisers.get@.+module Network.Google.Resource.GAN.Advertisers.Get+    (+    -- * REST Resource+      AdvertisersGetResource++    -- * Creating a Request+    , advertisersGet+    , AdvertisersGet++    -- * Request Lenses+    , agAdvertiserId+    , agRoleId+    , agRole+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.advertisers.get@ method which the+-- 'AdvertisersGet' request conforms to.+type AdvertisersGetResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" AdvertisersGetRole :>+           Capture "roleId" Text :>+             "advertiser" :>+               QueryParam "advertiserId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Advertiser++-- | Retrieves data about a single advertiser if that the requesting+-- advertiser\/publisher has access to it. Only publishers can lookup+-- advertisers. Advertisers can request information about themselves by+-- omitting the advertiserId query parameter.+--+-- /See:/ 'advertisersGet' smart constructor.+data AdvertisersGet = AdvertisersGet+    { _agAdvertiserId :: !(Maybe Text)+    , _agRoleId       :: !Text+    , _agRole         :: !AdvertisersGetRole+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AdvertisersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agAdvertiserId'+--+-- * 'agRoleId'+--+-- * 'agRole'+advertisersGet+    :: Text -- ^ 'agRoleId'+    -> AdvertisersGetRole -- ^ 'agRole'+    -> AdvertisersGet+advertisersGet pAgRoleId_ pAgRole_ =+    AdvertisersGet+    { _agAdvertiserId = Nothing+    , _agRoleId = pAgRoleId_+    , _agRole = pAgRole_+    }++-- | The ID of the advertiser to look up. Optional.+agAdvertiserId :: Lens' AdvertisersGet (Maybe Text)+agAdvertiserId+  = lens _agAdvertiserId+      (\ s a -> s{_agAdvertiserId = a})++-- | The ID of the requesting advertiser or publisher.+agRoleId :: Lens' AdvertisersGet Text+agRoleId = lens _agRoleId (\ s a -> s{_agRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+agRole :: Lens' AdvertisersGet AdvertisersGetRole+agRole = lens _agRole (\ s a -> s{_agRole = a})++instance GoogleRequest AdvertisersGet where+        type Rs AdvertisersGet = Advertiser+        requestClient AdvertisersGet{..}+          = go _agRole _agRoleId _agAdvertiserId (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy AdvertisersGetResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Advertisers/List.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Advertisers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves data about all advertisers that the requesting+-- advertiser\/publisher has access to.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.advertisers.list@.+module Network.Google.Resource.GAN.Advertisers.List+    (+    -- * REST Resource+      AdvertisersListResource++    -- * Creating a Request+    , advertisersList+    , AdvertisersList++    -- * Request Lenses+    , alRelationshipStatus+    , alMinSevenDayEpc+    , alRoleId+    , alMinNinetyDayEpc+    , alRole+    , alMinPayoutRank+    , alAdvertiserCategory+    , alPageToken+    , alMaxResults+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.advertisers.list@ method which the+-- 'AdvertisersList' request conforms to.+type AdvertisersListResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" AdvertisersListRole :>+           Capture "roleId" Text :>+             "advertisers" :>+               QueryParam "relationshipStatus"+                 AdvertisersListRelationshipStatus+                 :>+                 QueryParam "minSevenDayEpc" (Textual Double) :>+                   QueryParam "minNinetyDayEpc" (Textual Double) :>+                     QueryParam "minPayoutRank" (Textual Int32) :>+                       QueryParam "advertiserCategory" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "maxResults" (Textual Word32) :>+                             QueryParam "alt" AltJSON :> Get '[JSON] Advertisers++-- | Retrieves data about all advertisers that the requesting+-- advertiser\/publisher has access to.+--+-- /See:/ 'advertisersList' smart constructor.+data AdvertisersList = AdvertisersList+    { _alRelationshipStatus :: !(Maybe AdvertisersListRelationshipStatus)+    , _alMinSevenDayEpc     :: !(Maybe (Textual Double))+    , _alRoleId             :: !Text+    , _alMinNinetyDayEpc    :: !(Maybe (Textual Double))+    , _alRole               :: !AdvertisersListRole+    , _alMinPayoutRank      :: !(Maybe (Textual Int32))+    , _alAdvertiserCategory :: !(Maybe Text)+    , _alPageToken          :: !(Maybe Text)+    , _alMaxResults         :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AdvertisersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alRelationshipStatus'+--+-- * 'alMinSevenDayEpc'+--+-- * 'alRoleId'+--+-- * 'alMinNinetyDayEpc'+--+-- * 'alRole'+--+-- * 'alMinPayoutRank'+--+-- * 'alAdvertiserCategory'+--+-- * 'alPageToken'+--+-- * 'alMaxResults'+advertisersList+    :: Text -- ^ 'alRoleId'+    -> AdvertisersListRole -- ^ 'alRole'+    -> AdvertisersList+advertisersList pAlRoleId_ pAlRole_ =+    AdvertisersList+    { _alRelationshipStatus = Nothing+    , _alMinSevenDayEpc = Nothing+    , _alRoleId = pAlRoleId_+    , _alMinNinetyDayEpc = Nothing+    , _alRole = pAlRole_+    , _alMinPayoutRank = Nothing+    , _alAdvertiserCategory = Nothing+    , _alPageToken = Nothing+    , _alMaxResults = Nothing+    }++-- | Filters out all advertisers for which do not have the given relationship+-- status with the requesting publisher.+alRelationshipStatus :: Lens' AdvertisersList (Maybe AdvertisersListRelationshipStatus)+alRelationshipStatus+  = lens _alRelationshipStatus+      (\ s a -> s{_alRelationshipStatus = a})++-- | Filters out all advertisers that have a seven day EPC average lower than+-- the given value (inclusive). Min value: 0.0. Optional.+alMinSevenDayEpc :: Lens' AdvertisersList (Maybe Double)+alMinSevenDayEpc+  = lens _alMinSevenDayEpc+      (\ s a -> s{_alMinSevenDayEpc = a})+      . mapping _Coerce++-- | The ID of the requesting advertiser or publisher.+alRoleId :: Lens' AdvertisersList Text+alRoleId = lens _alRoleId (\ s a -> s{_alRoleId = a})++-- | Filters out all advertisers that have a ninety day EPC average lower+-- than the given value (inclusive). Min value: 0.0. Optional.+alMinNinetyDayEpc :: Lens' AdvertisersList (Maybe Double)+alMinNinetyDayEpc+  = lens _alMinNinetyDayEpc+      (\ s a -> s{_alMinNinetyDayEpc = a})+      . mapping _Coerce++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+alRole :: Lens' AdvertisersList AdvertisersListRole+alRole = lens _alRole (\ s a -> s{_alRole = a})++-- | A value between 1 and 4, where 1 represents the quartile of advertisers+-- with the lowest ranks and 4 represents the quartile of advertisers with+-- the highest ranks. Filters out all advertisers with a lower rank than+-- the given quartile. For example if a 2 was given only advertisers with a+-- payout rank of 25 or higher would be included. Optional.+alMinPayoutRank :: Lens' AdvertisersList (Maybe Int32)+alMinPayoutRank+  = lens _alMinPayoutRank+      (\ s a -> s{_alMinPayoutRank = a})+      . mapping _Coerce++-- | Caret(^) delimted list of advertiser categories. Valid categories are+-- defined here:+-- http:\/\/www.google.com\/support\/affiliatenetwork\/advertiser\/bin\/answer.py?hl=en&answer=107581.+-- Filters out all advertisers not in one of the given advertiser+-- categories. Optional.+alAdvertiserCategory :: Lens' AdvertisersList (Maybe Text)+alAdvertiserCategory+  = lens _alAdvertiserCategory+      (\ s a -> s{_alAdvertiserCategory = a})++-- | The value of \'nextPageToken\' from the previous page. Optional.+alPageToken :: Lens' AdvertisersList (Maybe Text)+alPageToken+  = lens _alPageToken (\ s a -> s{_alPageToken = a})++-- | Max number of items to return in this page. Optional. Defaults to 20.+alMaxResults :: Lens' AdvertisersList (Maybe Word32)+alMaxResults+  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})+      . mapping _Coerce++instance GoogleRequest AdvertisersList where+        type Rs AdvertisersList = Advertisers+        requestClient AdvertisersList{..}+          = go _alRole _alRoleId _alRelationshipStatus+              _alMinSevenDayEpc+              _alMinNinetyDayEpc+              _alMinPayoutRank+              _alAdvertiserCategory+              _alPageToken+              _alMaxResults+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient+                      (Proxy :: Proxy AdvertisersListResource)+                      mempty
+ gen/Network/Google/Resource/GAN/CcOffers/List.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.CcOffers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves credit card offers for the given publisher.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.ccOffers.list@.+module Network.Google.Resource.GAN.CcOffers.List+    (+    -- * REST Resource+      CcOffersListResource++    -- * Creating a Request+    , ccOffersList+    , CcOffersList++    -- * Request Lenses+    , colAdvertiser+    , colProjection+    , colPublisher+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.ccOffers.list@ method which the+-- 'CcOffersList' request conforms to.+type CcOffersListResource =+     "gan" :>+       "v1beta1" :>+         "publishers" :>+           Capture "publisher" Text :>+             "ccOffers" :>+               QueryParams "advertiser" Text :>+                 QueryParam "projection" CcOffersListProjection :>+                   QueryParam "alt" AltJSON :> Get '[JSON] CcOffers++-- | Retrieves credit card offers for the given publisher.+--+-- /See:/ 'ccOffersList' smart constructor.+data CcOffersList = CcOffersList+    { _colAdvertiser :: !(Maybe [Text])+    , _colProjection :: !(Maybe CcOffersListProjection)+    , _colPublisher  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CcOffersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'colAdvertiser'+--+-- * 'colProjection'+--+-- * 'colPublisher'+ccOffersList+    :: Text -- ^ 'colPublisher'+    -> CcOffersList+ccOffersList pColPublisher_ =+    CcOffersList+    { _colAdvertiser = Nothing+    , _colProjection = Nothing+    , _colPublisher = pColPublisher_+    }++-- | The advertiser ID of a card issuer whose offers to include. Optional,+-- may be repeated.+colAdvertiser :: Lens' CcOffersList [Text]+colAdvertiser+  = lens _colAdvertiser+      (\ s a -> s{_colAdvertiser = a})+      . _Default+      . _Coerce++-- | The set of fields to return.+colProjection :: Lens' CcOffersList (Maybe CcOffersListProjection)+colProjection+  = lens _colProjection+      (\ s a -> s{_colProjection = a})++-- | The ID of the publisher in question.+colPublisher :: Lens' CcOffersList Text+colPublisher+  = lens _colPublisher (\ s a -> s{_colPublisher = a})++instance GoogleRequest CcOffersList where+        type Rs CcOffersList = CcOffers+        requestClient CcOffersList{..}+          = go _colPublisher (_colAdvertiser ^. _Default)+              _colProjection+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy CcOffersListResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Events/List.hs view
@@ -0,0 +1,312 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Events.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves event data for a given advertiser\/publisher.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.events.list@.+module Network.Google.Resource.GAN.Events.List+    (+    -- * REST Resource+      EventsListResource++    -- * Creating a Request+    , eventsList+    , EventsList++    -- * Request Lenses+    , elStatus+    , elEventDateMin+    , elChargeType+    , elMemberId+    , elModifyDateMax+    , elAdvertiserId+    , elModifyDateMin+    , elRoleId+    , elRole+    , elEventDateMax+    , elSKU+    , elLinkId+    , elPageToken+    , elType+    , elOrderId+    , elPublisherId+    , elProductCategory+    , elMaxResults+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.events.list@ method which the+-- 'EventsList' request conforms to.+type EventsListResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" EventsListRole :>+           Capture "roleId" Text :>+             "events" :>+               QueryParam "status" EventsListStatus :>+                 QueryParam "eventDateMin" Text :>+                   QueryParam "chargeType" EventsListChargeType :>+                     QueryParam "memberId" Text :>+                       QueryParam "modifyDateMax" Text :>+                         QueryParam "advertiserId" Text :>+                           QueryParam "modifyDateMin" Text :>+                             QueryParam "eventDateMax" Text :>+                               QueryParam "sku" Text :>+                                 QueryParam "linkId" Text :>+                                   QueryParam "pageToken" Text :>+                                     QueryParam "type" EventsListType :>+                                       QueryParam "orderId" Text :>+                                         QueryParam "publisherId" Text :>+                                           QueryParam "productCategory" Text :>+                                             QueryParam "maxResults"+                                               (Textual Word32)+                                               :>+                                               QueryParam "alt" AltJSON :>+                                                 Get '[JSON] Events++-- | Retrieves event data for a given advertiser\/publisher.+--+-- /See:/ 'eventsList' smart constructor.+data EventsList = EventsList+    { _elStatus          :: !(Maybe EventsListStatus)+    , _elEventDateMin    :: !(Maybe Text)+    , _elChargeType      :: !(Maybe EventsListChargeType)+    , _elMemberId        :: !(Maybe Text)+    , _elModifyDateMax   :: !(Maybe Text)+    , _elAdvertiserId    :: !(Maybe Text)+    , _elModifyDateMin   :: !(Maybe Text)+    , _elRoleId          :: !Text+    , _elRole            :: !EventsListRole+    , _elEventDateMax    :: !(Maybe Text)+    , _elSKU             :: !(Maybe Text)+    , _elLinkId          :: !(Maybe Text)+    , _elPageToken       :: !(Maybe Text)+    , _elType            :: !(Maybe EventsListType)+    , _elOrderId         :: !(Maybe Text)+    , _elPublisherId     :: !(Maybe Text)+    , _elProductCategory :: !(Maybe Text)+    , _elMaxResults      :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'elStatus'+--+-- * 'elEventDateMin'+--+-- * 'elChargeType'+--+-- * 'elMemberId'+--+-- * 'elModifyDateMax'+--+-- * 'elAdvertiserId'+--+-- * 'elModifyDateMin'+--+-- * 'elRoleId'+--+-- * 'elRole'+--+-- * 'elEventDateMax'+--+-- * 'elSKU'+--+-- * 'elLinkId'+--+-- * 'elPageToken'+--+-- * 'elType'+--+-- * 'elOrderId'+--+-- * 'elPublisherId'+--+-- * 'elProductCategory'+--+-- * 'elMaxResults'+eventsList+    :: Text -- ^ 'elRoleId'+    -> EventsListRole -- ^ 'elRole'+    -> EventsList+eventsList pElRoleId_ pElRole_ =+    EventsList+    { _elStatus = Nothing+    , _elEventDateMin = Nothing+    , _elChargeType = Nothing+    , _elMemberId = Nothing+    , _elModifyDateMax = Nothing+    , _elAdvertiserId = Nothing+    , _elModifyDateMin = Nothing+    , _elRoleId = pElRoleId_+    , _elRole = pElRole_+    , _elEventDateMax = Nothing+    , _elSKU = Nothing+    , _elLinkId = Nothing+    , _elPageToken = Nothing+    , _elType = Nothing+    , _elOrderId = Nothing+    , _elPublisherId = Nothing+    , _elProductCategory = Nothing+    , _elMaxResults = Nothing+    }++-- | Filters out all events that do not have the given status. Valid values:+-- \'active\', \'canceled\'. Optional.+elStatus :: Lens' EventsList (Maybe EventsListStatus)+elStatus = lens _elStatus (\ s a -> s{_elStatus = a})++-- | Filters out all events earlier than given date. Optional. Defaults to 24+-- hours from current date\/time.+elEventDateMin :: Lens' EventsList (Maybe Text)+elEventDateMin+  = lens _elEventDateMin+      (\ s a -> s{_elEventDateMin = a})++-- | Filters out all charge events that are not of the given charge type.+-- Valid values: \'other\', \'slotting_fee\', \'monthly_minimum\',+-- \'tier_bonus\', \'credit\', \'debit\'. Optional.+elChargeType :: Lens' EventsList (Maybe EventsListChargeType)+elChargeType+  = lens _elChargeType (\ s a -> s{_elChargeType = a})++-- | Caret(^) delimited list of member IDs. Filters out all events that do+-- not reference one of the given member IDs. Optional.+elMemberId :: Lens' EventsList (Maybe Text)+elMemberId+  = lens _elMemberId (\ s a -> s{_elMemberId = a})++-- | Filters out all events modified later than given date. Optional.+-- Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly+-- set.+elModifyDateMax :: Lens' EventsList (Maybe Text)+elModifyDateMax+  = lens _elModifyDateMax+      (\ s a -> s{_elModifyDateMax = a})++-- | Caret(^) delimited list of advertiser IDs. Filters out all events that+-- do not reference one of the given advertiser IDs. Only used when under+-- publishers role. Optional.+elAdvertiserId :: Lens' EventsList (Maybe Text)+elAdvertiserId+  = lens _elAdvertiserId+      (\ s a -> s{_elAdvertiserId = a})++-- | Filters out all events modified earlier than given date. Optional.+-- Defaults to 24 hours before the current modifyDateMax, if modifyDateMax+-- is explicitly set.+elModifyDateMin :: Lens' EventsList (Maybe Text)+elModifyDateMin+  = lens _elModifyDateMin+      (\ s a -> s{_elModifyDateMin = a})++-- | The ID of the requesting advertiser or publisher.+elRoleId :: Lens' EventsList Text+elRoleId = lens _elRoleId (\ s a -> s{_elRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+elRole :: Lens' EventsList EventsListRole+elRole = lens _elRole (\ s a -> s{_elRole = a})++-- | Filters out all events later than given date. Optional. Defaults to 24+-- hours after eventMin.+elEventDateMax :: Lens' EventsList (Maybe Text)+elEventDateMax+  = lens _elEventDateMax+      (\ s a -> s{_elEventDateMax = a})++-- | Caret(^) delimited list of SKUs. Filters out all events that do not+-- reference one of the given SKU. Optional.+elSKU :: Lens' EventsList (Maybe Text)+elSKU = lens _elSKU (\ s a -> s{_elSKU = a})++-- | Caret(^) delimited list of link IDs. Filters out all events that do not+-- reference one of the given link IDs. Optional.+elLinkId :: Lens' EventsList (Maybe Text)+elLinkId = lens _elLinkId (\ s a -> s{_elLinkId = a})++-- | The value of \'nextPageToken\' from the previous page. Optional.+elPageToken :: Lens' EventsList (Maybe Text)+elPageToken+  = lens _elPageToken (\ s a -> s{_elPageToken = a})++-- | Filters out all events that are not of the given type. Valid values:+-- \'action\', \'transaction\', \'charge\'. Optional.+elType :: Lens' EventsList (Maybe EventsListType)+elType = lens _elType (\ s a -> s{_elType = a})++-- | Caret(^) delimited list of order IDs. Filters out all events that do not+-- reference one of the given order IDs. Optional.+elOrderId :: Lens' EventsList (Maybe Text)+elOrderId+  = lens _elOrderId (\ s a -> s{_elOrderId = a})++-- | Caret(^) delimited list of publisher IDs. Filters out all events that do+-- not reference one of the given publishers IDs. Only used when under+-- advertiser role. Optional.+elPublisherId :: Lens' EventsList (Maybe Text)+elPublisherId+  = lens _elPublisherId+      (\ s a -> s{_elPublisherId = a})++-- | Caret(^) delimited list of product categories. Filters out all events+-- that do not reference a product in one of the given product categories.+-- Optional.+elProductCategory :: Lens' EventsList (Maybe Text)+elProductCategory+  = lens _elProductCategory+      (\ s a -> s{_elProductCategory = a})++-- | Max number of offers to return in this page. Optional. Defaults to 20.+elMaxResults :: Lens' EventsList (Maybe Word32)+elMaxResults+  = lens _elMaxResults (\ s a -> s{_elMaxResults = a})+      . mapping _Coerce++instance GoogleRequest EventsList where+        type Rs EventsList = Events+        requestClient EventsList{..}+          = go _elRole _elRoleId _elStatus _elEventDateMin+              _elChargeType+              _elMemberId+              _elModifyDateMax+              _elAdvertiserId+              _elModifyDateMin+              _elEventDateMax+              _elSKU+              _elLinkId+              _elPageToken+              _elType+              _elOrderId+              _elPublisherId+              _elProductCategory+              _elMaxResults+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy EventsListResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Links/Get.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Links.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves data about a single link if the requesting+-- advertiser\/publisher has access to it. Advertisers can look up their+-- own links. Publishers can look up visible links or links belonging to+-- advertisers they are in a relationship with.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.links.get@.+module Network.Google.Resource.GAN.Links.Get+    (+    -- * REST Resource+      LinksGetResource++    -- * Creating a Request+    , linksGet+    , LinksGet++    -- * Request Lenses+    , lgRoleId+    , lgRole+    , lgLinkId+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.links.get@ method which the+-- 'LinksGet' request conforms to.+type LinksGetResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" LinksGetRole :>+           Capture "roleId" Text :>+             "link" :>+               Capture "linkId" (Textual Int64) :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Link++-- | Retrieves data about a single link if the requesting+-- advertiser\/publisher has access to it. Advertisers can look up their+-- own links. Publishers can look up visible links or links belonging to+-- advertisers they are in a relationship with.+--+-- /See:/ 'linksGet' smart constructor.+data LinksGet = LinksGet+    { _lgRoleId :: !Text+    , _lgRole   :: !LinksGetRole+    , _lgLinkId :: !(Textual Int64)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LinksGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgRoleId'+--+-- * 'lgRole'+--+-- * 'lgLinkId'+linksGet+    :: Text -- ^ 'lgRoleId'+    -> LinksGetRole -- ^ 'lgRole'+    -> Int64 -- ^ 'lgLinkId'+    -> LinksGet+linksGet pLgRoleId_ pLgRole_ pLgLinkId_ =+    LinksGet+    { _lgRoleId = pLgRoleId_+    , _lgRole = pLgRole_+    , _lgLinkId = _Coerce # pLgLinkId_+    }++-- | The ID of the requesting advertiser or publisher.+lgRoleId :: Lens' LinksGet Text+lgRoleId = lens _lgRoleId (\ s a -> s{_lgRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+lgRole :: Lens' LinksGet LinksGetRole+lgRole = lens _lgRole (\ s a -> s{_lgRole = a})++-- | The ID of the link to look up.+lgLinkId :: Lens' LinksGet Int64+lgLinkId+  = lens _lgLinkId (\ s a -> s{_lgLinkId = a}) .+      _Coerce++instance GoogleRequest LinksGet where+        type Rs LinksGet = Link+        requestClient LinksGet{..}+          = go _lgRole _lgRoleId _lgLinkId (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy LinksGetResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Links/Insert.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Links.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a new link.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.links.insert@.+module Network.Google.Resource.GAN.Links.Insert+    (+    -- * REST Resource+      LinksInsertResource++    -- * Creating a Request+    , linksInsert+    , LinksInsert++    -- * Request Lenses+    , liPayload+    , liRoleId+    , liRole+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.links.insert@ method which the+-- 'LinksInsert' request conforms to.+type LinksInsertResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" LinksInsertRole :>+           Capture "roleId" Text :>+             "link" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Link :> Post '[JSON] Link++-- | Inserts a new link.+--+-- /See:/ 'linksInsert' smart constructor.+data LinksInsert = LinksInsert+    { _liPayload :: !Link+    , _liRoleId  :: !Text+    , _liRole    :: !LinksInsertRole+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LinksInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'liPayload'+--+-- * 'liRoleId'+--+-- * 'liRole'+linksInsert+    :: Link -- ^ 'liPayload'+    -> Text -- ^ 'liRoleId'+    -> LinksInsertRole -- ^ 'liRole'+    -> LinksInsert+linksInsert pLiPayload_ pLiRoleId_ pLiRole_ =+    LinksInsert+    { _liPayload = pLiPayload_+    , _liRoleId = pLiRoleId_+    , _liRole = pLiRole_+    }++-- | Multipart request metadata.+liPayload :: Lens' LinksInsert Link+liPayload+  = lens _liPayload (\ s a -> s{_liPayload = a})++-- | The ID of the requesting advertiser or publisher.+liRoleId :: Lens' LinksInsert Text+liRoleId = lens _liRoleId (\ s a -> s{_liRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+liRole :: Lens' LinksInsert LinksInsertRole+liRole = lens _liRole (\ s a -> s{_liRole = a})++instance GoogleRequest LinksInsert where+        type Rs LinksInsert = Link+        requestClient LinksInsert{..}+          = go _liRole _liRoleId (Just AltJSON) _liPayload+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy LinksInsertResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Links/List.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Links.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all links that match the query parameters.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.links.list@.+module Network.Google.Resource.GAN.Links.List+    (+    -- * REST Resource+      LinksListResource++    -- * Creating a Request+    , linksList+    , LinksList++    -- * Request Lenses+    , llCreateDateMax+    , llAuthorship+    , llAssetSize+    , llRelationshipStatus+    , llAdvertiserId+    , llSearchText+    , llPromotionType+    , llRoleId+    , llRole+    , llCreateDateMin+    , llLinkType+    , llPageToken+    , llStartDateMax+    , llStartDateMin+    , llMaxResults+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.links.list@ method which the+-- 'LinksList' request conforms to.+type LinksListResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" LinksListRole :>+           Capture "roleId" Text :>+             "links" :>+               QueryParam "createDateMax" Text :>+                 QueryParam "authorship" LinksListAuthorship :>+                   QueryParams "assetSize" Text :>+                     QueryParam "relationshipStatus"+                       LinksListRelationshipStatus+                       :>+                       QueryParams "advertiserId" (Textual Int64) :>+                         QueryParam "searchText" Text :>+                           QueryParams "promotionType" LinksListPromotionType :>+                             QueryParam "createDateMin" Text :>+                               QueryParam "linkType" LinksListLinkType :>+                                 QueryParam "pageToken" Text :>+                                   QueryParam "startDateMax" Text :>+                                     QueryParam "startDateMin" Text :>+                                       QueryParam "maxResults" (Textual Word32)+                                         :>+                                         QueryParam "alt" AltJSON :>+                                           Get '[JSON] Links++-- | Retrieves all links that match the query parameters.+--+-- /See:/ 'linksList' smart constructor.+data LinksList = LinksList+    { _llCreateDateMax      :: !(Maybe Text)+    , _llAuthorship         :: !(Maybe LinksListAuthorship)+    , _llAssetSize          :: !(Maybe [Text])+    , _llRelationshipStatus :: !(Maybe LinksListRelationshipStatus)+    , _llAdvertiserId       :: !(Maybe [Textual Int64])+    , _llSearchText         :: !(Maybe Text)+    , _llPromotionType      :: !(Maybe [LinksListPromotionType])+    , _llRoleId             :: !Text+    , _llRole               :: !LinksListRole+    , _llCreateDateMin      :: !(Maybe Text)+    , _llLinkType           :: !(Maybe LinksListLinkType)+    , _llPageToken          :: !(Maybe Text)+    , _llStartDateMax       :: !(Maybe Text)+    , _llStartDateMin       :: !(Maybe Text)+    , _llMaxResults         :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LinksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llCreateDateMax'+--+-- * 'llAuthorship'+--+-- * 'llAssetSize'+--+-- * 'llRelationshipStatus'+--+-- * 'llAdvertiserId'+--+-- * 'llSearchText'+--+-- * 'llPromotionType'+--+-- * 'llRoleId'+--+-- * 'llRole'+--+-- * 'llCreateDateMin'+--+-- * 'llLinkType'+--+-- * 'llPageToken'+--+-- * 'llStartDateMax'+--+-- * 'llStartDateMin'+--+-- * 'llMaxResults'+linksList+    :: Text -- ^ 'llRoleId'+    -> LinksListRole -- ^ 'llRole'+    -> LinksList+linksList pLlRoleId_ pLlRole_ =+    LinksList+    { _llCreateDateMax = Nothing+    , _llAuthorship = Nothing+    , _llAssetSize = Nothing+    , _llRelationshipStatus = Nothing+    , _llAdvertiserId = Nothing+    , _llSearchText = Nothing+    , _llPromotionType = Nothing+    , _llRoleId = pLlRoleId_+    , _llRole = pLlRole_+    , _llCreateDateMin = Nothing+    , _llLinkType = Nothing+    , _llPageToken = Nothing+    , _llStartDateMax = Nothing+    , _llStartDateMin = Nothing+    , _llMaxResults = Nothing+    }++-- | The end of the create date range.+llCreateDateMax :: Lens' LinksList (Maybe Text)+llCreateDateMax+  = lens _llCreateDateMax+      (\ s a -> s{_llCreateDateMax = a})++-- | The role of the author of the link.+llAuthorship :: Lens' LinksList (Maybe LinksListAuthorship)+llAuthorship+  = lens _llAuthorship (\ s a -> s{_llAuthorship = a})++-- | The size of the given asset.+llAssetSize :: Lens' LinksList [Text]+llAssetSize+  = lens _llAssetSize (\ s a -> s{_llAssetSize = a}) .+      _Default+      . _Coerce++-- | The status of the relationship.+llRelationshipStatus :: Lens' LinksList (Maybe LinksListRelationshipStatus)+llRelationshipStatus+  = lens _llRelationshipStatus+      (\ s a -> s{_llRelationshipStatus = a})++-- | Limits the resulting links to the ones belonging to the listed+-- advertisers.+llAdvertiserId :: Lens' LinksList [Int64]+llAdvertiserId+  = lens _llAdvertiserId+      (\ s a -> s{_llAdvertiserId = a})+      . _Default+      . _Coerce++-- | Field for full text search across title and merchandising text, supports+-- link id search.+llSearchText :: Lens' LinksList (Maybe Text)+llSearchText+  = lens _llSearchText (\ s a -> s{_llSearchText = a})++-- | The promotion type.+llPromotionType :: Lens' LinksList [LinksListPromotionType]+llPromotionType+  = lens _llPromotionType+      (\ s a -> s{_llPromotionType = a})+      . _Default+      . _Coerce++-- | The ID of the requesting advertiser or publisher.+llRoleId :: Lens' LinksList Text+llRoleId = lens _llRoleId (\ s a -> s{_llRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+llRole :: Lens' LinksList LinksListRole+llRole = lens _llRole (\ s a -> s{_llRole = a})++-- | The beginning of the create date range.+llCreateDateMin :: Lens' LinksList (Maybe Text)+llCreateDateMin+  = lens _llCreateDateMin+      (\ s a -> s{_llCreateDateMin = a})++-- | The type of the link.+llLinkType :: Lens' LinksList (Maybe LinksListLinkType)+llLinkType+  = lens _llLinkType (\ s a -> s{_llLinkType = a})++-- | The value of \'nextPageToken\' from the previous page. Optional.+llPageToken :: Lens' LinksList (Maybe Text)+llPageToken+  = lens _llPageToken (\ s a -> s{_llPageToken = a})++-- | The end of the start date range.+llStartDateMax :: Lens' LinksList (Maybe Text)+llStartDateMax+  = lens _llStartDateMax+      (\ s a -> s{_llStartDateMax = a})++-- | The beginning of the start date range.+llStartDateMin :: Lens' LinksList (Maybe Text)+llStartDateMin+  = lens _llStartDateMin+      (\ s a -> s{_llStartDateMin = a})++-- | Max number of items to return in this page. Optional. Defaults to 20.+llMaxResults :: Lens' LinksList (Maybe Word32)+llMaxResults+  = lens _llMaxResults (\ s a -> s{_llMaxResults = a})+      . mapping _Coerce++instance GoogleRequest LinksList where+        type Rs LinksList = Links+        requestClient LinksList{..}+          = go _llRole _llRoleId _llCreateDateMax _llAuthorship+              (_llAssetSize ^. _Default)+              _llRelationshipStatus+              (_llAdvertiserId ^. _Default)+              _llSearchText+              (_llPromotionType ^. _Default)+              _llCreateDateMin+              _llLinkType+              _llPageToken+              _llStartDateMax+              _llStartDateMin+              _llMaxResults+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy LinksListResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Publishers/Get.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Publishers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves data about a single advertiser if that the requesting+-- advertiser\/publisher has access to it. Only advertisers can look up+-- publishers. Publishers can request information about themselves by+-- omitting the publisherId query parameter.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.publishers.get@.+module Network.Google.Resource.GAN.Publishers.Get+    (+    -- * REST Resource+      PublishersGetResource++    -- * Creating a Request+    , publishersGet+    , PublishersGet++    -- * Request Lenses+    , pgRoleId+    , pgRole+    , pgPublisherId+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.publishers.get@ method which the+-- 'PublishersGet' request conforms to.+type PublishersGetResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" PublishersGetRole :>+           Capture "roleId" Text :>+             "publisher" :>+               QueryParam "publisherId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Publisher++-- | Retrieves data about a single advertiser if that the requesting+-- advertiser\/publisher has access to it. Only advertisers can look up+-- publishers. Publishers can request information about themselves by+-- omitting the publisherId query parameter.+--+-- /See:/ 'publishersGet' smart constructor.+data PublishersGet = PublishersGet+    { _pgRoleId      :: !Text+    , _pgRole        :: !PublishersGetRole+    , _pgPublisherId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PublishersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgRoleId'+--+-- * 'pgRole'+--+-- * 'pgPublisherId'+publishersGet+    :: Text -- ^ 'pgRoleId'+    -> PublishersGetRole -- ^ 'pgRole'+    -> PublishersGet+publishersGet pPgRoleId_ pPgRole_ =+    PublishersGet+    { _pgRoleId = pPgRoleId_+    , _pgRole = pPgRole_+    , _pgPublisherId = Nothing+    }++-- | The ID of the requesting advertiser or publisher.+pgRoleId :: Lens' PublishersGet Text+pgRoleId = lens _pgRoleId (\ s a -> s{_pgRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+pgRole :: Lens' PublishersGet PublishersGetRole+pgRole = lens _pgRole (\ s a -> s{_pgRole = a})++-- | The ID of the publisher to look up. Optional.+pgPublisherId :: Lens' PublishersGet (Maybe Text)+pgPublisherId+  = lens _pgPublisherId+      (\ s a -> s{_pgPublisherId = a})++instance GoogleRequest PublishersGet where+        type Rs PublishersGet = Publisher+        requestClient PublishersGet{..}+          = go _pgRole _pgRoleId _pgPublisherId (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy PublishersGetResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Publishers/List.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Publishers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves data about all publishers that the requesting+-- advertiser\/publisher has access to.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.publishers.list@.+module Network.Google.Resource.GAN.Publishers.List+    (+    -- * REST Resource+      PublishersListResource++    -- * Creating a Request+    , publishersList+    , PublishersList++    -- * Request Lenses+    , plRelationshipStatus+    , plMinSevenDayEpc+    , plRoleId+    , plMinNinetyDayEpc+    , plRole+    , plMinPayoutRank+    , plPageToken+    , plPublisherCategory+    , plMaxResults+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.publishers.list@ method which the+-- 'PublishersList' request conforms to.+type PublishersListResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" PublishersListRole :>+           Capture "roleId" Text :>+             "publishers" :>+               QueryParam "relationshipStatus"+                 PublishersListRelationshipStatus+                 :>+                 QueryParam "minSevenDayEpc" (Textual Double) :>+                   QueryParam "minNinetyDayEpc" (Textual Double) :>+                     QueryParam "minPayoutRank" (Textual Int32) :>+                       QueryParam "pageToken" Text :>+                         QueryParam "publisherCategory" Text :>+                           QueryParam "maxResults" (Textual Word32) :>+                             QueryParam "alt" AltJSON :> Get '[JSON] Publishers++-- | Retrieves data about all publishers that the requesting+-- advertiser\/publisher has access to.+--+-- /See:/ 'publishersList' smart constructor.+data PublishersList = PublishersList+    { _plRelationshipStatus :: !(Maybe PublishersListRelationshipStatus)+    , _plMinSevenDayEpc     :: !(Maybe (Textual Double))+    , _plRoleId             :: !Text+    , _plMinNinetyDayEpc    :: !(Maybe (Textual Double))+    , _plRole               :: !PublishersListRole+    , _plMinPayoutRank      :: !(Maybe (Textual Int32))+    , _plPageToken          :: !(Maybe Text)+    , _plPublisherCategory  :: !(Maybe Text)+    , _plMaxResults         :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PublishersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plRelationshipStatus'+--+-- * 'plMinSevenDayEpc'+--+-- * 'plRoleId'+--+-- * 'plMinNinetyDayEpc'+--+-- * 'plRole'+--+-- * 'plMinPayoutRank'+--+-- * 'plPageToken'+--+-- * 'plPublisherCategory'+--+-- * 'plMaxResults'+publishersList+    :: Text -- ^ 'plRoleId'+    -> PublishersListRole -- ^ 'plRole'+    -> PublishersList+publishersList pPlRoleId_ pPlRole_ =+    PublishersList+    { _plRelationshipStatus = Nothing+    , _plMinSevenDayEpc = Nothing+    , _plRoleId = pPlRoleId_+    , _plMinNinetyDayEpc = Nothing+    , _plRole = pPlRole_+    , _plMinPayoutRank = Nothing+    , _plPageToken = Nothing+    , _plPublisherCategory = Nothing+    , _plMaxResults = Nothing+    }++-- | Filters out all publishers for which do not have the given relationship+-- status with the requesting publisher.+plRelationshipStatus :: Lens' PublishersList (Maybe PublishersListRelationshipStatus)+plRelationshipStatus+  = lens _plRelationshipStatus+      (\ s a -> s{_plRelationshipStatus = a})++-- | Filters out all publishers that have a seven day EPC average lower than+-- the given value (inclusive). Min value 0.0. Optional.+plMinSevenDayEpc :: Lens' PublishersList (Maybe Double)+plMinSevenDayEpc+  = lens _plMinSevenDayEpc+      (\ s a -> s{_plMinSevenDayEpc = a})+      . mapping _Coerce++-- | The ID of the requesting advertiser or publisher.+plRoleId :: Lens' PublishersList Text+plRoleId = lens _plRoleId (\ s a -> s{_plRoleId = a})++-- | Filters out all publishers that have a ninety day EPC average lower than+-- the given value (inclusive). Min value: 0.0. Optional.+plMinNinetyDayEpc :: Lens' PublishersList (Maybe Double)+plMinNinetyDayEpc+  = lens _plMinNinetyDayEpc+      (\ s a -> s{_plMinNinetyDayEpc = a})+      . mapping _Coerce++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+plRole :: Lens' PublishersList PublishersListRole+plRole = lens _plRole (\ s a -> s{_plRole = a})++-- | A value between 1 and 4, where 1 represents the quartile of publishers+-- with the lowest ranks and 4 represents the quartile of publishers with+-- the highest ranks. Filters out all publishers with a lower rank than the+-- given quartile. For example if a 2 was given only publishers with a+-- payout rank of 25 or higher would be included. Optional.+plMinPayoutRank :: Lens' PublishersList (Maybe Int32)+plMinPayoutRank+  = lens _plMinPayoutRank+      (\ s a -> s{_plMinPayoutRank = a})+      . mapping _Coerce++-- | The value of \'nextPageToken\' from the previous page. Optional.+plPageToken :: Lens' PublishersList (Maybe Text)+plPageToken+  = lens _plPageToken (\ s a -> s{_plPageToken = a})++-- | Caret(^) delimted list of publisher categories. Valid categories:+-- (unclassified|community_and_content|shopping_and_promotion|loyalty_and_rewards|network|search_specialist|comparison_shopping|email).+-- Filters out all publishers not in one of the given advertiser+-- categories. Optional.+plPublisherCategory :: Lens' PublishersList (Maybe Text)+plPublisherCategory+  = lens _plPublisherCategory+      (\ s a -> s{_plPublisherCategory = a})++-- | Max number of items to return in this page. Optional. Defaults to 20.+plMaxResults :: Lens' PublishersList (Maybe Word32)+plMaxResults+  = lens _plMaxResults (\ s a -> s{_plMaxResults = a})+      . mapping _Coerce++instance GoogleRequest PublishersList where+        type Rs PublishersList = Publishers+        requestClient PublishersList{..}+          = go _plRole _plRoleId _plRelationshipStatus+              _plMinSevenDayEpc+              _plMinNinetyDayEpc+              _plMinPayoutRank+              _plPageToken+              _plPublisherCategory+              _plMaxResults+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy PublishersListResource)+                      mempty
+ gen/Network/Google/Resource/GAN/Reports/Get.hs view
@@ -0,0 +1,259 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.GAN.Reports.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a report of the specified type.+--+-- /See:/ <https://developers.google.com/affiliate-network/ Google Affiliate Network API Reference> for @gan.reports.get@.+module Network.Google.Resource.GAN.Reports.Get+    (+    -- * REST Resource+      ReportsGetResource++    -- * Creating a Request+    , reportsGet+    , ReportsGet++    -- * Request Lenses+    , rgStatus+    , rgAdvertiserId+    , rgEndDate+    , rgRoleId+    , rgRole+    , rgEventType+    , rgStartDate+    , rgCalculateTotals+    , rgLinkId+    , rgOrderId+    , rgPublisherId+    , rgReportType+    , rgStartIndex+    , rgMaxResults+    ) where++import           Network.Google.Affiliates.Types+import           Network.Google.Prelude++-- | A resource alias for @gan.reports.get@ method which the+-- 'ReportsGet' request conforms to.+type ReportsGetResource =+     "gan" :>+       "v1beta1" :>+         Capture "role" ReportsGetRole :>+           Capture "roleId" Text :>+             "report" :>+               Capture "reportType" ReportsGetReportType :>+                 QueryParam "status" ReportsGetStatus :>+                   QueryParams "advertiserId" Text :>+                     QueryParam "endDate" Text :>+                       QueryParam "eventType" ReportsGetEventType :>+                         QueryParam "startDate" Text :>+                           QueryParam "calculateTotals" Bool :>+                             QueryParams "linkId" Text :>+                               QueryParams "orderId" Text :>+                                 QueryParams "publisherId" Text :>+                                   QueryParam "startIndex" (Textual Word32) :>+                                     QueryParam "maxResults" (Textual Word32) :>+                                       QueryParam "alt" AltJSON :>+                                         Get '[JSON] Report++-- | Retrieves a report of the specified type.+--+-- /See:/ 'reportsGet' smart constructor.+data ReportsGet = ReportsGet+    { _rgStatus          :: !(Maybe ReportsGetStatus)+    , _rgAdvertiserId    :: !(Maybe [Text])+    , _rgEndDate         :: !(Maybe Text)+    , _rgRoleId          :: !Text+    , _rgRole            :: !ReportsGetRole+    , _rgEventType       :: !(Maybe ReportsGetEventType)+    , _rgStartDate       :: !(Maybe Text)+    , _rgCalculateTotals :: !(Maybe Bool)+    , _rgLinkId          :: !(Maybe [Text])+    , _rgOrderId         :: !(Maybe [Text])+    , _rgPublisherId     :: !(Maybe [Text])+    , _rgReportType      :: !ReportsGetReportType+    , _rgStartIndex      :: !(Maybe (Textual Word32))+    , _rgMaxResults      :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReportsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgStatus'+--+-- * 'rgAdvertiserId'+--+-- * 'rgEndDate'+--+-- * 'rgRoleId'+--+-- * 'rgRole'+--+-- * 'rgEventType'+--+-- * 'rgStartDate'+--+-- * 'rgCalculateTotals'+--+-- * 'rgLinkId'+--+-- * 'rgOrderId'+--+-- * 'rgPublisherId'+--+-- * 'rgReportType'+--+-- * 'rgStartIndex'+--+-- * 'rgMaxResults'+reportsGet+    :: Text -- ^ 'rgRoleId'+    -> ReportsGetRole -- ^ 'rgRole'+    -> ReportsGetReportType -- ^ 'rgReportType'+    -> ReportsGet+reportsGet pRgRoleId_ pRgRole_ pRgReportType_ =+    ReportsGet+    { _rgStatus = Nothing+    , _rgAdvertiserId = Nothing+    , _rgEndDate = Nothing+    , _rgRoleId = pRgRoleId_+    , _rgRole = pRgRole_+    , _rgEventType = Nothing+    , _rgStartDate = Nothing+    , _rgCalculateTotals = Nothing+    , _rgLinkId = Nothing+    , _rgOrderId = Nothing+    , _rgPublisherId = Nothing+    , _rgReportType = pRgReportType_+    , _rgStartIndex = Nothing+    , _rgMaxResults = Nothing+    }++-- | Filters out all events that do not have the given status. Valid values:+-- \'active\', \'canceled\', or \'invalid\'. Optional.+rgStatus :: Lens' ReportsGet (Maybe ReportsGetStatus)+rgStatus = lens _rgStatus (\ s a -> s{_rgStatus = a})++-- | The IDs of the advertisers to look up, if applicable.+rgAdvertiserId :: Lens' ReportsGet [Text]+rgAdvertiserId+  = lens _rgAdvertiserId+      (\ s a -> s{_rgAdvertiserId = a})+      . _Default+      . _Coerce++-- | The end date (exclusive), in RFC 3339 format, for the report data to be+-- returned. Defaults to one day after startDate, if that is given, or+-- today. Optional.+rgEndDate :: Lens' ReportsGet (Maybe Text)+rgEndDate+  = lens _rgEndDate (\ s a -> s{_rgEndDate = a})++-- | The ID of the requesting advertiser or publisher.+rgRoleId :: Lens' ReportsGet Text+rgRoleId = lens _rgRoleId (\ s a -> s{_rgRoleId = a})++-- | The role of the requester. Valid values: \'advertisers\' or+-- \'publishers\'.+rgRole :: Lens' ReportsGet ReportsGetRole+rgRole = lens _rgRole (\ s a -> s{_rgRole = a})++-- | Filters out all events that are not of the given type. Valid values:+-- \'action\', \'transaction\', or \'charge\'. Optional.+rgEventType :: Lens' ReportsGet (Maybe ReportsGetEventType)+rgEventType+  = lens _rgEventType (\ s a -> s{_rgEventType = a})++-- | The start date (inclusive), in RFC 3339 format, for the report data to+-- be returned. Defaults to one day before endDate, if that is given, or+-- yesterday. Optional.+rgStartDate :: Lens' ReportsGet (Maybe Text)+rgStartDate+  = lens _rgStartDate (\ s a -> s{_rgStartDate = a})++-- | Whether or not to calculate totals rows. Optional.+rgCalculateTotals :: Lens' ReportsGet (Maybe Bool)+rgCalculateTotals+  = lens _rgCalculateTotals+      (\ s a -> s{_rgCalculateTotals = a})++-- | Filters to capture one of given link IDs. Optional.+rgLinkId :: Lens' ReportsGet [Text]+rgLinkId+  = lens _rgLinkId (\ s a -> s{_rgLinkId = a}) .+      _Default+      . _Coerce++-- | Filters to capture one of the given order IDs. Optional.+rgOrderId :: Lens' ReportsGet [Text]+rgOrderId+  = lens _rgOrderId (\ s a -> s{_rgOrderId = a}) .+      _Default+      . _Coerce++-- | The IDs of the publishers to look up, if applicable.+rgPublisherId :: Lens' ReportsGet [Text]+rgPublisherId+  = lens _rgPublisherId+      (\ s a -> s{_rgPublisherId = a})+      . _Default+      . _Coerce++-- | The type of report being requested. Valid values: \'order_delta\'.+-- Required.+rgReportType :: Lens' ReportsGet ReportsGetReportType+rgReportType+  = lens _rgReportType (\ s a -> s{_rgReportType = a})++-- | Offset on which to return results when paging. Optional.+rgStartIndex :: Lens' ReportsGet (Maybe Word32)+rgStartIndex+  = lens _rgStartIndex (\ s a -> s{_rgStartIndex = a})+      . mapping _Coerce++-- | Max number of items to return in this page. Optional. Defaults to return+-- all results.+rgMaxResults :: Lens' ReportsGet (Maybe Word32)+rgMaxResults+  = lens _rgMaxResults (\ s a -> s{_rgMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ReportsGet where+        type Rs ReportsGet = Report+        requestClient ReportsGet{..}+          = go _rgRole _rgRoleId _rgReportType _rgStatus+              (_rgAdvertiserId ^. _Default)+              _rgEndDate+              _rgEventType+              _rgStartDate+              _rgCalculateTotals+              (_rgLinkId ^. _Default)+              (_rgOrderId ^. _Default)+              (_rgPublisherId ^. _Default)+              _rgStartIndex+              _rgMaxResults+              (Just AltJSON)+              affiliatesService+          where go+                  = buildClient (Proxy :: Proxy ReportsGetResource)+                      mempty
+ gogol-affiliates.cabal view
@@ -0,0 +1,55 @@+name:                  gogol-affiliates+version:               0.0.1+synopsis:              Google Affiliate Network SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Lets you have programmatic access to your Google Affiliate Network data.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1beta1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Affiliates+        , Network.Google.Affiliates.Types+        , Network.Google.Resource.GAN.Advertisers.Get+        , Network.Google.Resource.GAN.Advertisers.List+        , Network.Google.Resource.GAN.CcOffers.List+        , Network.Google.Resource.GAN.Events.List+        , Network.Google.Resource.GAN.Links.Get+        , Network.Google.Resource.GAN.Links.Insert+        , Network.Google.Resource.GAN.Links.List+        , Network.Google.Resource.GAN.Publishers.Get+        , Network.Google.Resource.GAN.Publishers.List+        , Network.Google.Resource.GAN.Reports.Get++    other-modules:+          Network.Google.Affiliates.Types.Product+        , Network.Google.Affiliates.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5