-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Affiliate Network SDK.
--   
--   Lets you have programmatic access to your Google Affiliate Network
--   data.
--   
--   <i>Warning:</i> 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 <tt>v1beta1</tt> of the API.
@package gogol-affiliates
@version 0.3.0


module Network.Google.Affiliates.Types

-- | Default request referring to version <tt>v1beta1</tt> of the Google
--   Affiliate Network API. This contains the host and root path used as a
--   starting point for constructing service requests.
affiliatesService :: ServiceConfig

-- | An EventResource.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eModifyDate</a></li>
--   <li><a>eStatus</a></li>
--   <li><a>eCommissionableSales</a></li>
--   <li><a>eChargeId</a></li>
--   <li><a>eAdvertiserName</a></li>
--   <li><a>eChargeType</a></li>
--   <li><a>eMemberId</a></li>
--   <li><a>eKind</a></li>
--   <li><a>eNetworkFee</a></li>
--   <li><a>eAdvertiserId</a></li>
--   <li><a>eEventDate</a></li>
--   <li><a>eProducts</a></li>
--   <li><a>ePublisherFee</a></li>
--   <li><a>eType</a></li>
--   <li><a>eOrderId</a></li>
--   <li><a>ePublisherId</a></li>
--   <li><a>eEarnings</a></li>
--   <li><a>ePublisherName</a></li>
--   </ul>
event :: Event

-- | The date-time this event was last modified as a RFC 3339 date-time
--   value.
eModifyDate :: Lens' Event (Maybe UTCTime)

-- | Status of the event (active|canceled). Only returned for charge and
--   conversion events.
eStatus :: Lens' Event (Maybe Text)

-- | Amount of money exchanged during the transaction. Only returned for
--   charge and conversion events.
eCommissionableSales :: Lens' Event (Maybe Money)

-- | The charge ID for this event. Only returned for charge events.
eChargeId :: Lens' Event (Maybe Text)

-- | The name of the advertiser for this event.
eAdvertiserName :: Lens' Event (Maybe Text)

-- | Charge type of the event
--   (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only
--   returned for charge events.
eChargeType :: Lens' Event (Maybe Text)

-- | The ID of the member attached to this event. Only returned for
--   conversion events.
eMemberId :: Lens' Event (Maybe Text)

-- | The kind for one event.
eKind :: Lens' Event Text

-- | Fee that the advertiser paid to the Google Affiliate Network.
eNetworkFee :: Lens' Event (Maybe Money)

-- | The ID of advertiser for this event.
eAdvertiserId :: Lens' Event (Maybe Int64)

-- | The date-time this event was initiated as a RFC 3339 date-time value.
eEventDate :: Lens' Event (Maybe UTCTime)

-- | Products associated with the event.
eProducts :: Lens' Event [EventProductsItem]

-- | Fee that the advertiser paid to the publisher.
ePublisherFee :: Lens' Event (Maybe Money)

-- | Type of the event (action|transaction|charge).
eType :: Lens' Event (Maybe Text)

-- | The order ID for this event. Only returned for conversion events.
eOrderId :: Lens' Event (Maybe Text)

-- | The ID of the publisher for this event.
ePublisherId :: Lens' Event (Maybe Int64)

-- | Earnings by the publisher.
eEarnings :: Lens' Event (Maybe Money)

-- | The name of the publisher for this event.
ePublisherName :: Lens' Event (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data PublishersGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
PGRAdvertisers :: PublishersGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
PGRPublishers :: PublishersGetRole

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', or 'charge'. Optional.
data ReportsGetEventType

-- | <tt>action</tt> Event type is action.
Action :: ReportsGetEventType

-- | <tt>charge</tt> Event type is charge.
Charge :: ReportsGetEventType

-- | <tt>transaction</tt> Event type is transaction.
Transaction :: ReportsGetEventType

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled', or 'invalid'. Optional.
data ReportsGetStatus

-- | <tt>active</tt> Event is currently active.
Active :: ReportsGetStatus

-- | <tt>canceled</tt> Event is currently canceled.
Canceled :: ReportsGetStatus

-- | <tt>invalid</tt> Event is currently invalid.
Invalid :: ReportsGetStatus

-- | The promotion type.
data LinksListPromotionType

-- | <pre>
--   coupon
--   </pre>
Coupon :: LinksListPromotionType

-- | <pre>
--   free_gift
--   </pre>
FreeGift :: LinksListPromotionType

-- | <pre>
--   free_shipping
--   </pre>
FreeShipping :: LinksListPromotionType

-- | <pre>
--   percent_off
--   </pre>
PercentOff :: LinksListPromotionType

-- | <pre>
--   price_cut
--   </pre>
PriceCut :: LinksListPromotionType

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', 'charge'. Optional.
data EventsListType

-- | <tt>action</tt> 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.
ELTAction :: EventsListType

-- | <tt>charge</tt> A charge event is typically a payment between an
--   advertiser, publisher or Google.
ELTCharge :: EventsListType

-- | <tt>transaction</tt> A conversion event, typically an e-commerce
--   transaction. Some advertisers use a transaction to record other types
--   of events, such as magazine subscriptions.
ELTTransaction :: EventsListType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LLRAdvertisers :: LinksListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LLRPublishers :: LinksListRole

-- | The type of report being requested. Valid values: 'order_delta'.
--   Required.
data ReportsGetReportType

-- | <tt>order_delta</tt> The order delta report type.
OrderDelta :: ReportsGetReportType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data AdvertisersListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
ALRAdvertisers :: AdvertisersListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
ALRPublishers :: AdvertisersListRole

-- | An ApiMoneyProto.
--   
--   <i>See:</i> <a>money</a> smart constructor.
data Money

-- | Creates a value of <a>Money</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mAmount</a></li>
--   <li><a>mCurrencyCode</a></li>
--   </ul>
money :: Money

-- | The amount of money.
mAmount :: Lens' Money (Maybe Double)

-- | The 3-letter code of the currency in question.
mCurrencyCode :: Lens' Money (Maybe Text)

-- | A LinkResource.
--   
--   <i>See:</i> <a>link</a> smart constructor.
data Link

-- | Creates a value of <a>Link</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAuthorship</a></li>
--   <li><a>lDestinationURL</a></li>
--   <li><a>lClickTrackingURL</a></li>
--   <li><a>lCreateDate</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lAdvertiserId</a></li>
--   <li><a>lEndDate</a></li>
--   <li><a>lImageAltText</a></li>
--   <li><a>lPromotionType</a></li>
--   <li><a>lAvailability</a></li>
--   <li><a>lStartDate</a></li>
--   <li><a>lName</a></li>
--   <li><a>lImpressionTrackingURL</a></li>
--   <li><a>lSpecialOffers</a></li>
--   <li><a>lEpcSevenDayAverage</a></li>
--   <li><a>lId</a></li>
--   <li><a>lEpcNinetyDayAverage</a></li>
--   <li><a>lLinkType</a></li>
--   <li><a>lIsActive</a></li>
--   <li><a>lDuration</a></li>
--   <li><a>lDescription</a></li>
--   </ul>
link :: Link

-- | Authorship
lAuthorship :: Lens' Link (Maybe Text)

-- | The destination URL for the link.
lDestinationURL :: Lens' Link (Maybe Text)

-- | Tracking url for clicks.
lClickTrackingURL :: Lens' Link (Maybe Text)

-- | Date that this link was created.
lCreateDate :: Lens' Link (Maybe UTCTime)

-- | The kind for one entity.
lKind :: Lens' Link Text

-- | The advertiser id for the advertiser who owns this link.
lAdvertiserId :: Lens' Link (Maybe Int64)

-- | Date that this link becomes inactive.
lEndDate :: Lens' Link (Maybe UTCTime)

-- | image alt text.
lImageAltText :: Lens' Link (Maybe Text)

-- | Promotion Type
lPromotionType :: Lens' Link (Maybe Text)

-- | Availability.
lAvailability :: Lens' Link (Maybe Text)

-- | Date that this link becomes active.
lStartDate :: Lens' Link (Maybe UTCTime)

-- | The logical name for this link.
lName :: Lens' Link (Maybe Text)

-- | Tracking url for impressions.
lImpressionTrackingURL :: Lens' Link (Maybe Text)

-- | Special offers on the link.
lSpecialOffers :: Lens' Link (Maybe LinkSpecialOffers)

-- | 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)

-- | The ID of this link.
lId :: Lens' Link (Maybe Int64)

-- | 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)

-- | The link type.
lLinkType :: Lens' Link (Maybe Text)

-- | Flag for if this link is active.
lIsActive :: Lens' Link (Maybe Bool)

-- | Duration
lDuration :: Lens' Link (Maybe Text)

-- | Description.
lDescription :: Lens' Link (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksInsertRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LIRAdvertisers :: LinksInsertRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LIRPublishers :: LinksInsertRole
data CcOffers

-- | Creates a value of <a>CcOffers</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coKind</a></li>
--   <li><a>coItems</a></li>
--   </ul>
ccOffers :: CcOffers

-- | The kind for a page of credit card offers.
coKind :: Lens' CcOffers Text

-- | The credit card offers.
coItems :: Lens' CcOffers [CcOffer]

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data PublishersListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
PLRAdvertisers :: PublishersListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
PLRPublishers :: PublishersListRole
data CcOfferDefaultFeesItem

-- | Creates a value of <a>CcOfferDefaultFeesItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>codfiRateType</a></li>
--   <li><a>codfiMinRate</a></li>
--   <li><a>codfiCategory</a></li>
--   <li><a>codfiMaxRate</a></li>
--   </ul>
ccOfferDefaultFeesItem :: CcOfferDefaultFeesItem

-- | Fixed or variable.
codfiRateType :: Lens' CcOfferDefaultFeesItem (Maybe Text)

-- | 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)

-- | The type of charge, for example Purchases.
codfiCategory :: Lens' CcOfferDefaultFeesItem (Maybe Text)

-- | 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)

-- | A ReportResource representing a report of a certain type either for an
--   advertiser or publisher.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rEndDate</a></li>
--   <li><a>rTotalsRows</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rStartDate</a></li>
--   <li><a>rRows</a></li>
--   <li><a>rMatchingRowCount</a></li>
--   <li><a>rColumnNames</a></li>
--   <li><a>rType</a></li>
--   </ul>
report :: Report

-- | The end of the date range for this report, exclusive.
rEndDate :: Lens' Report (Maybe Text)

-- | The totals rows for the report
rTotalsRows :: Lens' Report [[JSONValue]]

-- | The kind for a report.
rKind :: Lens' Report Text

-- | The start of the date range for this report, inclusive.
rStartDate :: Lens' Report (Maybe Text)

-- | The rows of data for the report
rRows :: Lens' Report [[JSONValue]]

-- | The number of matching rows before paging is applied.
rMatchingRowCount :: Lens' Report (Maybe Int64)

-- | The column names for the report
rColumnNames :: Lens' Report [Text]

-- | The report type.
rType :: Lens' Report (Maybe Text)

-- | The role of the author of the link.
data LinksListAuthorship

-- | <pre>
--   advertiser
--   </pre>
LLAAdvertiser :: LinksListAuthorship

-- | <pre>
--   publisher
--   </pre>
LLAPublisher :: LinksListAuthorship
data Advertisers

-- | Creates a value of <a>Advertisers</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aNextPageToken</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aItems</a></li>
--   </ul>
advertisers :: Advertisers

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
aNextPageToken :: Lens' Advertisers (Maybe Text)

-- | The kind for a page of advertisers.
aKind :: Lens' Advertisers Text

-- | The advertiser list.
aItems :: Lens' Advertisers [Advertiser]

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LGRAdvertisers :: LinksGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LGRPublishers :: LinksGetRole

-- | The type of the link.
data LinksListLinkType

-- | <pre>
--   banner
--   </pre>
Banner :: LinksListLinkType

-- | <pre>
--   text
--   </pre>
Text :: LinksListLinkType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data EventsListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
ELRAdvertisers :: EventsListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
ELRPublishers :: EventsListRole
data EventProductsItem

-- | Creates a value of <a>EventProductsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epiSKUName</a></li>
--   <li><a>epiNetworkFee</a></li>
--   <li><a>epiQuantity</a></li>
--   <li><a>epiCategoryName</a></li>
--   <li><a>epiCategoryId</a></li>
--   <li><a>epiSKU</a></li>
--   <li><a>epiPublisherFee</a></li>
--   <li><a>epiUnitPrice</a></li>
--   <li><a>epiEarnings</a></li>
--   </ul>
eventProductsItem :: EventProductsItem

-- | Sku name of this product.
epiSKUName :: Lens' EventProductsItem (Maybe Text)

-- | Fee that the advertiser paid to the Google Affiliate Network for this
--   product.
epiNetworkFee :: Lens' EventProductsItem (Maybe Money)

-- | Quantity of this product bought/exchanged.
epiQuantity :: Lens' EventProductsItem (Maybe Int64)

-- | Name of the category this product belongs to.
epiCategoryName :: Lens' EventProductsItem (Maybe Text)

-- | Id of the category this product belongs to.
epiCategoryId :: Lens' EventProductsItem (Maybe Text)

-- | Sku of this product.
epiSKU :: Lens' EventProductsItem (Maybe Text)

-- | Fee that the advertiser paid to the publisehr for this product.
epiPublisherFee :: Lens' EventProductsItem (Maybe Money)

-- | Price per unit of this product.
epiUnitPrice :: Lens' EventProductsItem (Maybe Money)

-- | Amount earned by the publisher on this product.
epiEarnings :: Lens' EventProductsItem (Maybe Money)

-- | Filters out all advertisers for which do not have the given
--   relationship status with the requesting publisher.
data AdvertisersListRelationshipStatus

-- | <tt>approved</tt> An advertiser that has approved your application.
Approved :: AdvertisersListRelationshipStatus

-- | <tt>available</tt> An advertiser program that's accepting new
--   publishers.
Available :: AdvertisersListRelationshipStatus

-- | <tt>deactivated</tt> 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.
Deactivated :: AdvertisersListRelationshipStatus

-- | <tt>declined</tt> An advertiser that did not approve your application.
Declined :: AdvertisersListRelationshipStatus

-- | <tt>pending</tt> An advertiser program that you've already applied to,
--   but they haven't yet decided to approve or decline your application.
Pending :: AdvertisersListRelationshipStatus

-- | The set of fields to return.
data CcOffersListProjection

-- | <tt>full</tt> Include all offer fields. This is the default.
Full :: CcOffersListProjection

-- | <tt>summary</tt> Include only the basic fields needed to display an
--   offer.
Summary :: CcOffersListProjection
data CcOfferBonusRewardsItem

-- | Creates a value of <a>CcOfferBonusRewardsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cobriAmount</a></li>
--   <li><a>cobriDetails</a></li>
--   </ul>
ccOfferBonusRewardsItem :: CcOfferBonusRewardsItem

-- | How many units of reward will be granted.
cobriAmount :: Lens' CcOfferBonusRewardsItem (Maybe Double)

-- | The circumstances under which this rule applies, for example, booking
--   a flight via Orbitz.
cobriDetails :: Lens' CcOfferBonusRewardsItem (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data AdvertisersGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
AGRAdvertisers :: AdvertisersGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
AGRPublishers :: AdvertisersGetRole

-- | 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

-- | <tt>credit</tt> A credit increases the publisher's payout amount and
--   decreases the advertiser's invoice amount.
Credit :: EventsListChargeType

-- | <tt>debit</tt> A debit reduces the publisher's payout and increases
--   the advertiser's invoice amount.
Debit :: EventsListChargeType

-- | <tt>monthly_minimum</tt> A payment made to Google by an advertiser as
--   a minimum monthly network fee.
MonthlyMinimum :: EventsListChargeType

-- | <tt>other</tt> Catch all. Default if unset
Other :: EventsListChargeType

-- | <tt>slotting_fee</tt> A one time payment made from an advertiser to a
--   publisher.
SlottingFee :: EventsListChargeType

-- | <tt>tier_bonus</tt> A payment from an advertiser to a publisher for
--   the publisher maintaining a high tier level
TierBonus :: EventsListChargeType

-- | Filters out all publishers for which do not have the given
--   relationship status with the requesting publisher.
data PublishersListRelationshipStatus

-- | <tt>approved</tt> Publishers you've approved to your program.
PLRSApproved :: PublishersListRelationshipStatus

-- | <tt>available</tt> Publishers available for you to recruit.
PLRSAvailable :: PublishersListRelationshipStatus

-- | <tt>deactivated</tt> A publisher that you terminated from your
--   program. Publishers also have the ability to remove themselves from
--   your program.
PLRSDeactivated :: PublishersListRelationshipStatus

-- | <tt>declined</tt> A publisher that you did not approve to your
--   program.
PLRSDeclined :: PublishersListRelationshipStatus

-- | <tt>pending</tt> Publishers that have applied to your program. We
--   recommend reviewing and deciding on pending publishers on a weekly
--   basis.
PLRSPending :: PublishersListRelationshipStatus

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data ReportsGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
RGRAdvertisers :: ReportsGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
RGRPublishers :: ReportsGetRole
data Events

-- | Creates a value of <a>Events</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eveNextPageToken</a></li>
--   <li><a>eveKind</a></li>
--   <li><a>eveItems</a></li>
--   </ul>
events :: Events

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
eveNextPageToken :: Lens' Events (Maybe Text)

-- | The kind for a page of events.
eveKind :: Lens' Events Text

-- | The event list.
eveItems :: Lens' Events [Event]

-- | Special offers on the link.
--   
--   <i>See:</i> <a>linkSpecialOffers</a> smart constructor.
data LinkSpecialOffers

-- | Creates a value of <a>LinkSpecialOffers</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsoFreeShippingMin</a></li>
--   <li><a>lsoPercentOff</a></li>
--   <li><a>lsoPriceCut</a></li>
--   <li><a>lsoPriceCutMin</a></li>
--   <li><a>lsoPercentOffMin</a></li>
--   <li><a>lsoFreeShipping</a></li>
--   <li><a>lsoPromotionCodes</a></li>
--   <li><a>lsoFreeGift</a></li>
--   </ul>
linkSpecialOffers :: LinkSpecialOffers

-- | Minimum purchase amount for free shipping promotion
lsoFreeShippingMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Percent off on the purchase
lsoPercentOff :: Lens' LinkSpecialOffers (Maybe Double)

-- | Price cut on the purchase
lsoPriceCut :: Lens' LinkSpecialOffers (Maybe Money)

-- | Minimum purchase amount for price cut promotion
lsoPriceCutMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Minimum purchase amount for percent off promotion
lsoPercentOffMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Whether there is free shipping
lsoFreeShipping :: Lens' LinkSpecialOffers (Maybe Bool)

-- | List of promotion code associated with the link
lsoPromotionCodes :: Lens' LinkSpecialOffers [Text]

-- | Whether there is a free gift
lsoFreeGift :: Lens' LinkSpecialOffers (Maybe Bool)
data Publishers

-- | Creates a value of <a>Publishers</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pNextPageToken</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pItems</a></li>
--   </ul>
publishers :: Publishers

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
pNextPageToken :: Lens' Publishers (Maybe Text)

-- | The kind for a page of entities.
pKind :: Lens' Publishers Text

-- | The entity list.
pItems :: Lens' Publishers [Publisher]

-- | An AdvertiserResource.
--   
--   <i>See:</i> <a>advertiser</a> smart constructor.
data Advertiser

-- | Creates a value of <a>Advertiser</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>advAllowPublisherCreatedLinks</a></li>
--   <li><a>advContactPhone</a></li>
--   <li><a>advContactEmail</a></li>
--   <li><a>advStatus</a></li>
--   <li><a>advLogoURL</a></li>
--   <li><a>advKind</a></li>
--   <li><a>advCategory</a></li>
--   <li><a>advSiteURL</a></li>
--   <li><a>advPayoutRank</a></li>
--   <li><a>advJoinDate</a></li>
--   <li><a>advDefaultLinkId</a></li>
--   <li><a>advRedirectDomains</a></li>
--   <li><a>advName</a></li>
--   <li><a>advProductFeedsEnabled</a></li>
--   <li><a>advMerchantCenterIds</a></li>
--   <li><a>advEpcSevenDayAverage</a></li>
--   <li><a>advItem</a></li>
--   <li><a>advId</a></li>
--   <li><a>advEpcNinetyDayAverage</a></li>
--   <li><a>advCommissionDuration</a></li>
--   <li><a>advDescription</a></li>
--   </ul>
advertiser :: Advertiser

-- | True if the advertiser allows publisher created links, otherwise
--   false.
advAllowPublisherCreatedLinks :: Lens' Advertiser (Maybe Bool)

-- | Phone that this advertiser would like publishers to contact them with.
advContactPhone :: Lens' Advertiser (Maybe Text)

-- | Email that this advertiser would like publishers to contact them with.
advContactEmail :: Lens' Advertiser (Maybe Text)

-- | The status of the requesting publisher's relationship this advertiser.
advStatus :: Lens' Advertiser (Maybe Text)

-- | URL to the logo this advertiser uses on the Google Affiliate Network.
advLogoURL :: Lens' Advertiser (Maybe Text)

-- | The kind for an advertiser.
advKind :: Lens' Advertiser Text

-- | 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&amp;answer=107581
advCategory :: Lens' Advertiser (Maybe Text)

-- | URL of the website this advertiser advertises from.
advSiteURL :: Lens' Advertiser (Maybe Text)

-- | 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)

-- | Date that this advertiser was approved as a Google Affiliate Network
--   advertiser.
advJoinDate :: Lens' Advertiser (Maybe UTCTime)

-- | The default link id for this advertiser.
advDefaultLinkId :: Lens' Advertiser (Maybe Int64)

-- | List of redirect URLs for this advertiser
advRedirectDomains :: Lens' Advertiser [Text]

-- | The name of this advertiser.
advName :: Lens' Advertiser (Maybe Text)

-- | Allows advertisers to submit product listings to Google Product
--   Search.
advProductFeedsEnabled :: Lens' Advertiser (Maybe Bool)

-- | List of merchant center ids for this advertiser
advMerchantCenterIds :: Lens' Advertiser [Int64]

-- | 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)

-- | The requested advertiser.
advItem :: Lens' Advertiser (Maybe Advertiser)

-- | The ID of this advertiser.
advId :: Lens' Advertiser (Maybe Int64)

-- | 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)

-- | 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)

-- | Description of the website the advertiser advertises from.
advDescription :: Lens' Advertiser (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>ccOffer</a> smart constructor.
data CcOffer

-- | Creates a value of <a>CcOffer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cMinimumFinanceCharge</a></li>
--   <li><a>cTrackingURL</a></li>
--   <li><a>cProhibitedCategories</a></li>
--   <li><a>cBalanceComputationMethod</a></li>
--   <li><a>cInitialSetupAndProcessingFee</a></li>
--   <li><a>cReturnedPaymentFee</a></li>
--   <li><a>cAgeMinimumDetails</a></li>
--   <li><a>cVariableRatesUpdateFrequency</a></li>
--   <li><a>cCreditLimitMin</a></li>
--   <li><a>cTravelInsurance</a></li>
--   <li><a>cApprovedCategories</a></li>
--   <li><a>cAnnualFeeDisplay</a></li>
--   <li><a>cOverLimitFee</a></li>
--   <li><a>cMaxPurchaseRate</a></li>
--   <li><a>cAgeMinimum</a></li>
--   <li><a>cVariableRatesLastUpdated</a></li>
--   <li><a>cIntroCashAdvanceTerms</a></li>
--   <li><a>cIssuerWebsite</a></li>
--   <li><a>cLuggageInsurance</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cRewardsHaveBlackoutDates</a></li>
--   <li><a>cDisclaimer</a></li>
--   <li><a>cAdditionalCardHolderFee</a></li>
--   <li><a>cExistingCustomerOnly</a></li>
--   <li><a>cEmergencyInsurance</a></li>
--   <li><a>cNetwork</a></li>
--   <li><a>cCashAdvanceTerms</a></li>
--   <li><a>cStatementCopyFee</a></li>
--   <li><a>cAprDisplay</a></li>
--   <li><a>cOffersImmediateCashReward</a></li>
--   <li><a>cRewards</a></li>
--   <li><a>cCardType</a></li>
--   <li><a>cImageURL</a></li>
--   <li><a>cCreditLimitMax</a></li>
--   <li><a>cLandingPageURL</a></li>
--   <li><a>cAnnualFee</a></li>
--   <li><a>cRewardsExpire</a></li>
--   <li><a>cFirstYearAnnualFee</a></li>
--   <li><a>cCarRentalInsurance</a></li>
--   <li><a>cPurchaseRateAdditionalDetails</a></li>
--   <li><a>cOfferId</a></li>
--   <li><a>cGracePeriodDisplay</a></li>
--   <li><a>cIntroPurchaseTerms</a></li>
--   <li><a>cCreditRatingDisplay</a></li>
--   <li><a>cBalanceTransferTerms</a></li>
--   <li><a>cLatePaymentFee</a></li>
--   <li><a>cCardBenefits</a></li>
--   <li><a>cIssuer</a></li>
--   <li><a>cCardName</a></li>
--   <li><a>cMinPurchaseRate</a></li>
--   <li><a>cFraudLiability</a></li>
--   <li><a>cForeignCurrencyTransactionFee</a></li>
--   <li><a>cExtendedWarranty</a></li>
--   <li><a>cAnnualRewardMaximum</a></li>
--   <li><a>cIssuerId</a></li>
--   <li><a>cIntroBalanceTransferTerms</a></li>
--   <li><a>cDefaultFees</a></li>
--   <li><a>cAdditionalCardBenefits</a></li>
--   <li><a>cRewardUnit</a></li>
--   <li><a>cBonusRewards</a></li>
--   <li><a>cFlightAccidentInsurance</a></li>
--   <li><a>cRewardPartner</a></li>
--   <li><a>cPurchaseRateType</a></li>
--   </ul>
ccOffer :: CcOffer

-- | Text describing how much missing the grace period will cost.
cMinimumFinanceCharge :: Lens' CcOffer (Maybe Text)

-- | The link to ping to register a click on this offer. A summary field.
cTrackingURL :: Lens' CcOffer (Maybe Text)

-- | Categories in which the issuer does not wish the card to be displayed.
--   A summary field.
cProhibitedCategories :: Lens' CcOffer [Text]

-- | Text describing how the balance is computed. A summary field.
cBalanceComputationMethod :: Lens' CcOffer (Maybe Text)

-- | Fee for setting up the card.
cInitialSetupAndProcessingFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the fee for a payment that doesn't clear. A summary
--   field.
cReturnedPaymentFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the details of the age minimum restriction.
cAgeMinimumDetails :: Lens' CcOffer (Maybe Text)

-- | How often variable rates are updated.
cVariableRatesUpdateFrequency :: Lens' CcOffer (Maybe Text)

-- | The low end for credit limits the issuer imposes on recipients of this
--   card.
cCreditLimitMin :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cTravelInsurance :: Lens' CcOffer (Maybe Text)

-- | Possible categories for this card, eg "Low Interest" or "Good." A
--   summary field.
cApprovedCategories :: Lens' CcOffer [Text]

-- | Text describing the annual fee, including any difference for the first
--   year. A summary field.
cAnnualFeeDisplay :: Lens' CcOffer (Maybe Text)

-- | Fee for exceeding the card's charge limit.
cOverLimitFee :: Lens' CcOffer (Maybe Text)

-- | The highest interest rate the issuer charges on this card. Expressed
--   as an absolute number, not as a percentage.
cMaxPurchaseRate :: Lens' CcOffer (Maybe Double)

-- | The youngest a recipient of this card may be.
cAgeMinimum :: Lens' CcOffer (Maybe Double)

-- | When variable rates were last updated.
cVariableRatesLastUpdated :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period cash advances. A
--   summary field.
cIntroCashAdvanceTerms :: Lens' CcOffer (Maybe Text)

-- | The generic link to the issuer's site.
cIssuerWebsite :: Lens' CcOffer (Maybe Text)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cLuggageInsurance :: Lens' CcOffer (Maybe Text)

-- | The kind for one credit card offer. A summary field.
cKind :: Lens' CcOffer Text

-- | For airline miles rewards, tells whether blackout dates apply to the
--   miles.
cRewardsHaveBlackoutDates :: Lens' CcOffer (Maybe Bool)

-- | 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)

-- | Any extra fees levied on card holders.
cAdditionalCardHolderFee :: Lens' CcOffer (Maybe Text)

-- | Whether this card is only available to existing customers of the
--   issuer.
cExistingCustomerOnly :: Lens' CcOffer (Maybe Bool)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cEmergencyInsurance :: Lens' CcOffer (Maybe Text)

-- | Which network (eg Visa) the card belongs to. A summary field.
cNetwork :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for cash advances. A summary field.
cCashAdvanceTerms :: Lens' CcOffer (Maybe Text)

-- | Fee for requesting a copy of your statement.
cStatementCopyFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the purchase APR. A summary field.
cAprDisplay :: Lens' CcOffer (Maybe Text)

-- | Whether a cash reward program lets you get cash back sooner than end
--   of year or other longish period.
cOffersImmediateCashReward :: Lens' CcOffer (Maybe Bool)

-- | For cards with rewards programs, detailed rules about how the program
--   works.
cRewards :: Lens' CcOffer [CcOfferRewardsItem]

-- | What kind of credit card this is, for example secured or unsecured.
cCardType :: Lens' CcOffer (Maybe Text)

-- | The link to the image of the card that is shown on Connect Commerce. A
--   summary field.
cImageURL :: Lens' CcOffer (Maybe Text)

-- | The high end for credit limits the issuer imposes on recipients of
--   this card.
cCreditLimitMax :: Lens' CcOffer (Maybe Double)

-- | The link to the issuer's page for this card. A summary field.
cLandingPageURL :: Lens' CcOffer (Maybe Text)

-- | The ongoing annual fee, in dollars.
cAnnualFee :: Lens' CcOffer (Maybe Double)

-- | Whether accumulated rewards ever expire.
cRewardsExpire :: Lens' CcOffer (Maybe Bool)

-- | The annual fee for the first year, if different from the ongoing fee.
--   Optional.
cFirstYearAnnualFee :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cCarRentalInsurance :: Lens' CcOffer (Maybe Text)

-- | Text describing any additional details for the purchase rate. A
--   summary field.
cPurchaseRateAdditionalDetails :: Lens' CcOffer (Maybe Text)

-- | This offer's ID. A summary field.
cOfferId :: Lens' CcOffer (Maybe Text)

-- | Text describing the grace period before finance charges apply. A
--   summary field.
cGracePeriodDisplay :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period purchases. A summary
--   field.
cIntroPurchaseTerms :: Lens' CcOffer (Maybe Text)

-- | Text describing the credit ratings required for recipients of this
--   card, for example "Excellent/Good." A summary field.
cCreditRatingDisplay :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for balance transfers. A summary field.
cBalanceTransferTerms :: Lens' CcOffer (Maybe Text)

-- | Text describing how much a late payment will cost, eg "up to $35." A
--   summary field.
cLatePaymentFee :: Lens' CcOffer (Maybe Text)

-- | 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]

-- | Name of card issuer. A summary field.
cIssuer :: Lens' CcOffer (Maybe Text)

-- | The issuer's name for the card, including any trademark or service
--   mark designators. A summary field.
cCardName :: Lens' CcOffer (Maybe Text)

-- | The lowest interest rate the issuer charges on this card. Expressed as
--   an absolute number, not as a percentage.
cMinPurchaseRate :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cFraudLiability :: Lens' CcOffer (Maybe Text)

-- | Fee for each transaction involving a foreign currency.
cForeignCurrencyTransactionFee :: Lens' CcOffer (Maybe Text)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cExtendedWarranty :: Lens' CcOffer (Maybe Text)

-- | The largest number of units you may accumulate in a year.
cAnnualRewardMaximum :: Lens' CcOffer (Maybe Double)

-- | The Google Affiliate Network ID of the advertiser making this offer.
cIssuerId :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period balance transfers. A
--   summary field.
cIntroBalanceTransferTerms :: Lens' CcOffer (Maybe Text)

-- | Fees for defaulting on your payments.
cDefaultFees :: Lens' CcOffer [CcOfferDefaultFeesItem]

-- | More marketing copy about the card's benefits. A summary field.
cAdditionalCardBenefits :: Lens' CcOffer [Text]

-- | For cards with rewards programs, the unit of reward. For example,
--   miles, cash back, points.
cRewardUnit :: Lens' CcOffer (Maybe Text)

-- | For cards with rewards programs, extra circumstances whereby
--   additional rewards may be granted.
cBonusRewards :: Lens' CcOffer [CcOfferBonusRewardsItem]

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cFlightAccidentInsurance :: Lens' CcOffer (Maybe Text)

-- | The company that redeems the rewards, if different from the issuer.
cRewardPartner :: Lens' CcOffer (Maybe Text)

-- | Fixed or variable.
cPurchaseRateType :: Lens' CcOffer (Maybe Text)
data Links

-- | Creates a value of <a>Links</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>linNextPageToken</a></li>
--   <li><a>linKind</a></li>
--   <li><a>linItems</a></li>
--   </ul>
links :: Links

-- | The next page token.
linNextPageToken :: Lens' Links (Maybe Text)

-- | The kind for a page of links.
linKind :: Lens' Links Text

-- | The links.
linItems :: Lens' Links [Link]

-- | A PublisherResource.
--   
--   <i>See:</i> <a>publisher</a> smart constructor.
data Publisher

-- | Creates a value of <a>Publisher</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pubStatus</a></li>
--   <li><a>pubKind</a></li>
--   <li><a>pubPayoutRank</a></li>
--   <li><a>pubJoinDate</a></li>
--   <li><a>pubClassification</a></li>
--   <li><a>pubName</a></li>
--   <li><a>pubEpcSevenDayAverage</a></li>
--   <li><a>pubItem</a></li>
--   <li><a>pubId</a></li>
--   <li><a>pubEpcNinetyDayAverage</a></li>
--   <li><a>pubSites</a></li>
--   </ul>
publisher :: Publisher

-- | The status of the requesting advertiser's relationship with this
--   publisher.
pubStatus :: Lens' Publisher (Maybe Text)

-- | The kind for a publisher.
pubKind :: Lens' Publisher Text

-- | 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)

-- | Date that this publisher was approved as a Google Affiliate Network
--   publisher.
pubJoinDate :: Lens' Publisher (Maybe UTCTime)

-- | 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&amp;answer=107625&amp;ctx=cb&amp;src=cb&amp;cbid=-k5fihzthfaik&amp;cbrank=4
pubClassification :: Lens' Publisher (Maybe Text)

-- | The name of this publisher.
pubName :: Lens' Publisher (Maybe Text)

-- | 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)

-- | The requested publisher.
pubItem :: Lens' Publisher (Maybe Publisher)

-- | The ID of this publisher.
pubId :: Lens' Publisher (Maybe Int64)

-- | 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)

-- | Websites that this publisher uses to advertise.
pubSites :: Lens' Publisher [Text]
data CcOfferRewardsItem

-- | Creates a value of <a>CcOfferRewardsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coriAmount</a></li>
--   <li><a>coriExpirationMonths</a></li>
--   <li><a>coriCategory</a></li>
--   <li><a>coriAdditionalDetails</a></li>
--   <li><a>coriMaxRewardTier</a></li>
--   <li><a>coriMinRewardTier</a></li>
--   </ul>
ccOfferRewardsItem :: CcOfferRewardsItem

-- | The number of units rewarded per purchase dollar.
coriAmount :: Lens' CcOfferRewardsItem (Maybe Double)

-- | How long rewards granted by this rule last.
coriExpirationMonths :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The kind of purchases covered by this rule.
coriCategory :: Lens' CcOfferRewardsItem (Maybe Text)

-- | Other limits, for example, if this rule only applies during an
--   introductory period.
coriAdditionalDetails :: Lens' CcOfferRewardsItem (Maybe Text)

-- | The maximum purchase amount in the given category for this rule to
--   apply.
coriMaxRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The minimum purchase amount in the given category before this rule
--   applies.
coriMinRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The status of the relationship.
data LinksListRelationshipStatus

-- | <pre>
--   approved
--   </pre>
LLRSApproved :: LinksListRelationshipStatus

-- | <pre>
--   available
--   </pre>
LLRSAvailable :: LinksListRelationshipStatus

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled'. Optional.
data EventsListStatus

-- | <tt>active</tt> Event is currently active.
ELSActive :: EventsListStatus

-- | <tt>canceled</tt> Event is currently canceled.
ELSCanceled :: EventsListStatus


-- | 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.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.advertisers.get</tt>.
module Network.Google.Resource.GAN.Advertisers.Get

-- | A resource alias for <tt>gan.advertisers.get</tt> method which the
--   <a>AdvertisersGet</a> request conforms to.
type AdvertisersGetResource = "gan" :> ("v1beta1" :> (Capture "role" AdvertisersGetRole :> (Capture "roleId" Text :> ("advertiser" :> (QueryParam "advertiserId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Advertiser))))))

-- | Creates a value of <a>AdvertisersGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>agAdvertiserId</a></li>
--   <li><a>agRoleId</a></li>
--   <li><a>agRole</a></li>
--   </ul>
advertisersGet :: Text -> AdvertisersGetRole -> AdvertisersGet

-- | 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.
--   
--   <i>See:</i> <a>advertisersGet</a> smart constructor.
data AdvertisersGet

-- | The ID of the advertiser to look up. Optional.
agAdvertiserId :: Lens' AdvertisersGet (Maybe Text)

-- | The ID of the requesting advertiser or publisher.
agRoleId :: Lens' AdvertisersGet Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
agRole :: Lens' AdvertisersGet AdvertisersGetRole
instance GHC.Generics.Generic Network.Google.Resource.GAN.Advertisers.Get.AdvertisersGet
instance Data.Data.Data Network.Google.Resource.GAN.Advertisers.Get.AdvertisersGet
instance GHC.Show.Show Network.Google.Resource.GAN.Advertisers.Get.AdvertisersGet
instance GHC.Classes.Eq Network.Google.Resource.GAN.Advertisers.Get.AdvertisersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Advertisers.Get.AdvertisersGet


-- | Retrieves data about all advertisers that the requesting
--   advertiser/publisher has access to.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.advertisers.list</tt>.
module Network.Google.Resource.GAN.Advertisers.List

-- | A resource alias for <tt>gan.advertisers.list</tt> method which the
--   <a>AdvertisersList</a> 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))))))))))))

-- | Creates a value of <a>AdvertisersList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alRelationshipStatus</a></li>
--   <li><a>alMinSevenDayEpc</a></li>
--   <li><a>alRoleId</a></li>
--   <li><a>alMinNinetyDayEpc</a></li>
--   <li><a>alRole</a></li>
--   <li><a>alMinPayoutRank</a></li>
--   <li><a>alAdvertiserCategory</a></li>
--   <li><a>alPageToken</a></li>
--   <li><a>alMaxResults</a></li>
--   </ul>
advertisersList :: Text -> AdvertisersListRole -> AdvertisersList

-- | Retrieves data about all advertisers that the requesting
--   advertiser/publisher has access to.
--   
--   <i>See:</i> <a>advertisersList</a> smart constructor.
data AdvertisersList

-- | Filters out all advertisers for which do not have the given
--   relationship status with the requesting publisher.
alRelationshipStatus :: Lens' AdvertisersList (Maybe AdvertisersListRelationshipStatus)

-- | 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)

-- | The ID of the requesting advertiser or publisher.
alRoleId :: Lens' AdvertisersList Text

-- | 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)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
alRole :: Lens' AdvertisersList AdvertisersListRole

-- | 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)

-- | Caret(^) delimted list of advertiser categories. Valid categories are
--   defined here:
--   http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&amp;answer=107581.
--   Filters out all advertisers not in one of the given advertiser
--   categories. Optional.
alAdvertiserCategory :: Lens' AdvertisersList (Maybe Text)

-- | The value of 'nextPageToken' from the previous page. Optional.
alPageToken :: Lens' AdvertisersList (Maybe Text)

-- | Max number of items to return in this page. Optional. Defaults to 20.
alMaxResults :: Lens' AdvertisersList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Advertisers.List.AdvertisersList
instance Data.Data.Data Network.Google.Resource.GAN.Advertisers.List.AdvertisersList
instance GHC.Show.Show Network.Google.Resource.GAN.Advertisers.List.AdvertisersList
instance GHC.Classes.Eq Network.Google.Resource.GAN.Advertisers.List.AdvertisersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Advertisers.List.AdvertisersList


-- | Retrieves credit card offers for the given publisher.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.ccOffers.list</tt>.
module Network.Google.Resource.GAN.CcOffers.List

-- | A resource alias for <tt>gan.ccOffers.list</tt> method which the
--   <a>CcOffersList</a> request conforms to.
type CcOffersListResource = "gan" :> ("v1beta1" :> ("publishers" :> (Capture "publisher" Text :> ("ccOffers" :> (QueryParams "advertiser" Text :> (QueryParam "projection" CcOffersListProjection :> (QueryParam "alt" AltJSON :> Get '[JSON] CcOffers)))))))

-- | Creates a value of <a>CcOffersList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>colAdvertiser</a></li>
--   <li><a>colProjection</a></li>
--   <li><a>colPublisher</a></li>
--   </ul>
ccOffersList :: Text -> CcOffersList

-- | Retrieves credit card offers for the given publisher.
--   
--   <i>See:</i> <a>ccOffersList</a> smart constructor.
data CcOffersList

-- | The advertiser ID of a card issuer whose offers to include. Optional,
--   may be repeated.
colAdvertiser :: Lens' CcOffersList [Text]

-- | The set of fields to return.
colProjection :: Lens' CcOffersList (Maybe CcOffersListProjection)

-- | The ID of the publisher in question.
colPublisher :: Lens' CcOffersList Text
instance GHC.Generics.Generic Network.Google.Resource.GAN.CcOffers.List.CcOffersList
instance Data.Data.Data Network.Google.Resource.GAN.CcOffers.List.CcOffersList
instance GHC.Show.Show Network.Google.Resource.GAN.CcOffers.List.CcOffersList
instance GHC.Classes.Eq Network.Google.Resource.GAN.CcOffers.List.CcOffersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.CcOffers.List.CcOffersList


-- | Retrieves event data for a given advertiser/publisher.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.events.list</tt>.
module Network.Google.Resource.GAN.Events.List

-- | A resource alias for <tt>gan.events.list</tt> method which the
--   <a>EventsList</a> 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)))))))))))))))))))))

-- | Creates a value of <a>EventsList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elStatus</a></li>
--   <li><a>elEventDateMin</a></li>
--   <li><a>elChargeType</a></li>
--   <li><a>elMemberId</a></li>
--   <li><a>elModifyDateMax</a></li>
--   <li><a>elAdvertiserId</a></li>
--   <li><a>elModifyDateMin</a></li>
--   <li><a>elRoleId</a></li>
--   <li><a>elRole</a></li>
--   <li><a>elEventDateMax</a></li>
--   <li><a>elSKU</a></li>
--   <li><a>elLinkId</a></li>
--   <li><a>elPageToken</a></li>
--   <li><a>elType</a></li>
--   <li><a>elOrderId</a></li>
--   <li><a>elPublisherId</a></li>
--   <li><a>elProductCategory</a></li>
--   <li><a>elMaxResults</a></li>
--   </ul>
eventsList :: Text -> EventsListRole -> EventsList

-- | Retrieves event data for a given advertiser/publisher.
--   
--   <i>See:</i> <a>eventsList</a> smart constructor.
data EventsList

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled'. Optional.
elStatus :: Lens' EventsList (Maybe EventsListStatus)

-- | Filters out all events earlier than given date. Optional. Defaults to
--   24 hours from current date/time.
elEventDateMin :: Lens' EventsList (Maybe Text)

-- | 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)

-- | 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)

-- | 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)

-- | 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)

-- | 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)

-- | The ID of the requesting advertiser or publisher.
elRoleId :: Lens' EventsList Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
elRole :: Lens' EventsList EventsListRole

-- | Filters out all events later than given date. Optional. Defaults to 24
--   hours after eventMin.
elEventDateMax :: Lens' EventsList (Maybe Text)

-- | Caret(^) delimited list of SKUs. Filters out all events that do not
--   reference one of the given SKU. Optional.
elSKU :: Lens' EventsList (Maybe Text)

-- | 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)

-- | The value of 'nextPageToken' from the previous page. Optional.
elPageToken :: Lens' EventsList (Maybe Text)

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', 'charge'. Optional.
elType :: Lens' EventsList (Maybe EventsListType)

-- | 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)

-- | 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)

-- | 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)

-- | Max number of offers to return in this page. Optional. Defaults to 20.
elMaxResults :: Lens' EventsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Events.List.EventsList
instance Data.Data.Data Network.Google.Resource.GAN.Events.List.EventsList
instance GHC.Show.Show Network.Google.Resource.GAN.Events.List.EventsList
instance GHC.Classes.Eq Network.Google.Resource.GAN.Events.List.EventsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Events.List.EventsList


-- | 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.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.links.get</tt>.
module Network.Google.Resource.GAN.Links.Get

-- | A resource alias for <tt>gan.links.get</tt> method which the
--   <a>LinksGet</a> request conforms to.
type LinksGetResource = "gan" :> ("v1beta1" :> (Capture "role" LinksGetRole :> (Capture "roleId" Text :> ("link" :> (Capture "linkId" (Textual Int64) :> (QueryParam "alt" AltJSON :> Get '[JSON] Link))))))

-- | Creates a value of <a>LinksGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgRoleId</a></li>
--   <li><a>lgRole</a></li>
--   <li><a>lgLinkId</a></li>
--   </ul>
linksGet :: Text -> LinksGetRole -> Int64 -> LinksGet

-- | 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.
--   
--   <i>See:</i> <a>linksGet</a> smart constructor.
data LinksGet

-- | The ID of the requesting advertiser or publisher.
lgRoleId :: Lens' LinksGet Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
lgRole :: Lens' LinksGet LinksGetRole

-- | The ID of the link to look up.
lgLinkId :: Lens' LinksGet Int64
instance GHC.Generics.Generic Network.Google.Resource.GAN.Links.Get.LinksGet
instance Data.Data.Data Network.Google.Resource.GAN.Links.Get.LinksGet
instance GHC.Show.Show Network.Google.Resource.GAN.Links.Get.LinksGet
instance GHC.Classes.Eq Network.Google.Resource.GAN.Links.Get.LinksGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Links.Get.LinksGet


-- | Inserts a new link.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.links.insert</tt>.
module Network.Google.Resource.GAN.Links.Insert

-- | A resource alias for <tt>gan.links.insert</tt> method which the
--   <a>LinksInsert</a> request conforms to.
type LinksInsertResource = "gan" :> ("v1beta1" :> (Capture "role" LinksInsertRole :> (Capture "roleId" Text :> ("link" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Link :> Post '[JSON] Link))))))

-- | Creates a value of <a>LinksInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>liPayload</a></li>
--   <li><a>liRoleId</a></li>
--   <li><a>liRole</a></li>
--   </ul>
linksInsert :: Link -> Text -> LinksInsertRole -> LinksInsert

-- | Inserts a new link.
--   
--   <i>See:</i> <a>linksInsert</a> smart constructor.
data LinksInsert

-- | Multipart request metadata.
liPayload :: Lens' LinksInsert Link

-- | The ID of the requesting advertiser or publisher.
liRoleId :: Lens' LinksInsert Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
liRole :: Lens' LinksInsert LinksInsertRole
instance GHC.Generics.Generic Network.Google.Resource.GAN.Links.Insert.LinksInsert
instance Data.Data.Data Network.Google.Resource.GAN.Links.Insert.LinksInsert
instance GHC.Show.Show Network.Google.Resource.GAN.Links.Insert.LinksInsert
instance GHC.Classes.Eq Network.Google.Resource.GAN.Links.Insert.LinksInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Links.Insert.LinksInsert


-- | Retrieves all links that match the query parameters.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.links.list</tt>.
module Network.Google.Resource.GAN.Links.List

-- | A resource alias for <tt>gan.links.list</tt> method which the
--   <a>LinksList</a> 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))))))))))))))))))

-- | Creates a value of <a>LinksList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llCreateDateMax</a></li>
--   <li><a>llAuthorship</a></li>
--   <li><a>llAssetSize</a></li>
--   <li><a>llRelationshipStatus</a></li>
--   <li><a>llAdvertiserId</a></li>
--   <li><a>llSearchText</a></li>
--   <li><a>llPromotionType</a></li>
--   <li><a>llRoleId</a></li>
--   <li><a>llRole</a></li>
--   <li><a>llCreateDateMin</a></li>
--   <li><a>llLinkType</a></li>
--   <li><a>llPageToken</a></li>
--   <li><a>llStartDateMax</a></li>
--   <li><a>llStartDateMin</a></li>
--   <li><a>llMaxResults</a></li>
--   </ul>
linksList :: Text -> LinksListRole -> LinksList

-- | Retrieves all links that match the query parameters.
--   
--   <i>See:</i> <a>linksList</a> smart constructor.
data LinksList

-- | The end of the create date range.
llCreateDateMax :: Lens' LinksList (Maybe Text)

-- | The role of the author of the link.
llAuthorship :: Lens' LinksList (Maybe LinksListAuthorship)

-- | The size of the given asset.
llAssetSize :: Lens' LinksList [Text]

-- | The status of the relationship.
llRelationshipStatus :: Lens' LinksList (Maybe LinksListRelationshipStatus)

-- | Limits the resulting links to the ones belonging to the listed
--   advertisers.
llAdvertiserId :: Lens' LinksList [Int64]

-- | Field for full text search across title and merchandising text,
--   supports link id search.
llSearchText :: Lens' LinksList (Maybe Text)

-- | The promotion type.
llPromotionType :: Lens' LinksList [LinksListPromotionType]

-- | The ID of the requesting advertiser or publisher.
llRoleId :: Lens' LinksList Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
llRole :: Lens' LinksList LinksListRole

-- | The beginning of the create date range.
llCreateDateMin :: Lens' LinksList (Maybe Text)

-- | The type of the link.
llLinkType :: Lens' LinksList (Maybe LinksListLinkType)

-- | The value of 'nextPageToken' from the previous page. Optional.
llPageToken :: Lens' LinksList (Maybe Text)

-- | The end of the start date range.
llStartDateMax :: Lens' LinksList (Maybe Text)

-- | The beginning of the start date range.
llStartDateMin :: Lens' LinksList (Maybe Text)

-- | Max number of items to return in this page. Optional. Defaults to 20.
llMaxResults :: Lens' LinksList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Links.List.LinksList
instance Data.Data.Data Network.Google.Resource.GAN.Links.List.LinksList
instance GHC.Show.Show Network.Google.Resource.GAN.Links.List.LinksList
instance GHC.Classes.Eq Network.Google.Resource.GAN.Links.List.LinksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Links.List.LinksList


-- | 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.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.publishers.get</tt>.
module Network.Google.Resource.GAN.Publishers.Get

-- | A resource alias for <tt>gan.publishers.get</tt> method which the
--   <a>PublishersGet</a> request conforms to.
type PublishersGetResource = "gan" :> ("v1beta1" :> (Capture "role" PublishersGetRole :> (Capture "roleId" Text :> ("publisher" :> (QueryParam "publisherId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Publisher))))))

-- | Creates a value of <a>PublishersGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgRoleId</a></li>
--   <li><a>pgRole</a></li>
--   <li><a>pgPublisherId</a></li>
--   </ul>
publishersGet :: Text -> PublishersGetRole -> PublishersGet

-- | 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.
--   
--   <i>See:</i> <a>publishersGet</a> smart constructor.
data PublishersGet

-- | The ID of the requesting advertiser or publisher.
pgRoleId :: Lens' PublishersGet Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
pgRole :: Lens' PublishersGet PublishersGetRole

-- | The ID of the publisher to look up. Optional.
pgPublisherId :: Lens' PublishersGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Publishers.Get.PublishersGet
instance Data.Data.Data Network.Google.Resource.GAN.Publishers.Get.PublishersGet
instance GHC.Show.Show Network.Google.Resource.GAN.Publishers.Get.PublishersGet
instance GHC.Classes.Eq Network.Google.Resource.GAN.Publishers.Get.PublishersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Publishers.Get.PublishersGet


-- | Retrieves data about all publishers that the requesting
--   advertiser/publisher has access to.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.publishers.list</tt>.
module Network.Google.Resource.GAN.Publishers.List

-- | A resource alias for <tt>gan.publishers.list</tt> method which the
--   <a>PublishersList</a> 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))))))))))))

-- | Creates a value of <a>PublishersList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plRelationshipStatus</a></li>
--   <li><a>plMinSevenDayEpc</a></li>
--   <li><a>plRoleId</a></li>
--   <li><a>plMinNinetyDayEpc</a></li>
--   <li><a>plRole</a></li>
--   <li><a>plMinPayoutRank</a></li>
--   <li><a>plPageToken</a></li>
--   <li><a>plPublisherCategory</a></li>
--   <li><a>plMaxResults</a></li>
--   </ul>
publishersList :: Text -> PublishersListRole -> PublishersList

-- | Retrieves data about all publishers that the requesting
--   advertiser/publisher has access to.
--   
--   <i>See:</i> <a>publishersList</a> smart constructor.
data PublishersList

-- | Filters out all publishers for which do not have the given
--   relationship status with the requesting publisher.
plRelationshipStatus :: Lens' PublishersList (Maybe PublishersListRelationshipStatus)

-- | 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)

-- | The ID of the requesting advertiser or publisher.
plRoleId :: Lens' PublishersList Text

-- | 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)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
plRole :: Lens' PublishersList PublishersListRole

-- | 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)

-- | The value of 'nextPageToken' from the previous page. Optional.
plPageToken :: Lens' PublishersList (Maybe Text)

-- | 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)

-- | Max number of items to return in this page. Optional. Defaults to 20.
plMaxResults :: Lens' PublishersList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Publishers.List.PublishersList
instance Data.Data.Data Network.Google.Resource.GAN.Publishers.List.PublishersList
instance GHC.Show.Show Network.Google.Resource.GAN.Publishers.List.PublishersList
instance GHC.Classes.Eq Network.Google.Resource.GAN.Publishers.List.PublishersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Publishers.List.PublishersList


-- | Retrieves a report of the specified type.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a> for
--   <tt>gan.reports.get</tt>.
module Network.Google.Resource.GAN.Reports.Get

-- | A resource alias for <tt>gan.reports.get</tt> method which the
--   <a>ReportsGet</a> 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)))))))))))))))))

-- | Creates a value of <a>ReportsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rgStatus</a></li>
--   <li><a>rgAdvertiserId</a></li>
--   <li><a>rgEndDate</a></li>
--   <li><a>rgRoleId</a></li>
--   <li><a>rgRole</a></li>
--   <li><a>rgEventType</a></li>
--   <li><a>rgStartDate</a></li>
--   <li><a>rgCalculateTotals</a></li>
--   <li><a>rgLinkId</a></li>
--   <li><a>rgOrderId</a></li>
--   <li><a>rgPublisherId</a></li>
--   <li><a>rgReportType</a></li>
--   <li><a>rgStartIndex</a></li>
--   <li><a>rgMaxResults</a></li>
--   </ul>
reportsGet :: Text -> ReportsGetRole -> ReportsGetReportType -> ReportsGet

-- | Retrieves a report of the specified type.
--   
--   <i>See:</i> <a>reportsGet</a> smart constructor.
data ReportsGet

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled', or 'invalid'. Optional.
rgStatus :: Lens' ReportsGet (Maybe ReportsGetStatus)

-- | The IDs of the advertisers to look up, if applicable.
rgAdvertiserId :: Lens' ReportsGet [Text]

-- | 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)

-- | The ID of the requesting advertiser or publisher.
rgRoleId :: Lens' ReportsGet Text

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
rgRole :: Lens' ReportsGet ReportsGetRole

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', or 'charge'. Optional.
rgEventType :: Lens' ReportsGet (Maybe ReportsGetEventType)

-- | 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)

-- | Whether or not to calculate totals rows. Optional.
rgCalculateTotals :: Lens' ReportsGet (Maybe Bool)

-- | Filters to capture one of given link IDs. Optional.
rgLinkId :: Lens' ReportsGet [Text]

-- | Filters to capture one of the given order IDs. Optional.
rgOrderId :: Lens' ReportsGet [Text]

-- | The IDs of the publishers to look up, if applicable.
rgPublisherId :: Lens' ReportsGet [Text]

-- | The type of report being requested. Valid values: 'order_delta'.
--   Required.
rgReportType :: Lens' ReportsGet ReportsGetReportType

-- | Offset on which to return results when paging. Optional.
rgStartIndex :: Lens' ReportsGet (Maybe Word32)

-- | Max number of items to return in this page. Optional. Defaults to
--   return all results.
rgMaxResults :: Lens' ReportsGet (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.GAN.Reports.Get.ReportsGet
instance Data.Data.Data Network.Google.Resource.GAN.Reports.Get.ReportsGet
instance GHC.Show.Show Network.Google.Resource.GAN.Reports.Get.ReportsGet
instance GHC.Classes.Eq Network.Google.Resource.GAN.Reports.Get.ReportsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GAN.Reports.Get.ReportsGet


-- | Lets you have programmatic access to your Google Affiliate Network
--   data.
--   
--   <i>See:</i> <a>Google Affiliate Network API Reference</a>
module Network.Google.Affiliates

-- | Default request referring to version <tt>v1beta1</tt> of the Google
--   Affiliate Network API. This contains the host and root path used as a
--   starting point for constructing service requests.
affiliatesService :: ServiceConfig

-- | 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))))))))

-- | An EventResource.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eModifyDate</a></li>
--   <li><a>eStatus</a></li>
--   <li><a>eCommissionableSales</a></li>
--   <li><a>eChargeId</a></li>
--   <li><a>eAdvertiserName</a></li>
--   <li><a>eChargeType</a></li>
--   <li><a>eMemberId</a></li>
--   <li><a>eKind</a></li>
--   <li><a>eNetworkFee</a></li>
--   <li><a>eAdvertiserId</a></li>
--   <li><a>eEventDate</a></li>
--   <li><a>eProducts</a></li>
--   <li><a>ePublisherFee</a></li>
--   <li><a>eType</a></li>
--   <li><a>eOrderId</a></li>
--   <li><a>ePublisherId</a></li>
--   <li><a>eEarnings</a></li>
--   <li><a>ePublisherName</a></li>
--   </ul>
event :: Event

-- | The date-time this event was last modified as a RFC 3339 date-time
--   value.
eModifyDate :: Lens' Event (Maybe UTCTime)

-- | Status of the event (active|canceled). Only returned for charge and
--   conversion events.
eStatus :: Lens' Event (Maybe Text)

-- | Amount of money exchanged during the transaction. Only returned for
--   charge and conversion events.
eCommissionableSales :: Lens' Event (Maybe Money)

-- | The charge ID for this event. Only returned for charge events.
eChargeId :: Lens' Event (Maybe Text)

-- | The name of the advertiser for this event.
eAdvertiserName :: Lens' Event (Maybe Text)

-- | Charge type of the event
--   (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only
--   returned for charge events.
eChargeType :: Lens' Event (Maybe Text)

-- | The ID of the member attached to this event. Only returned for
--   conversion events.
eMemberId :: Lens' Event (Maybe Text)

-- | The kind for one event.
eKind :: Lens' Event Text

-- | Fee that the advertiser paid to the Google Affiliate Network.
eNetworkFee :: Lens' Event (Maybe Money)

-- | The ID of advertiser for this event.
eAdvertiserId :: Lens' Event (Maybe Int64)

-- | The date-time this event was initiated as a RFC 3339 date-time value.
eEventDate :: Lens' Event (Maybe UTCTime)

-- | Products associated with the event.
eProducts :: Lens' Event [EventProductsItem]

-- | Fee that the advertiser paid to the publisher.
ePublisherFee :: Lens' Event (Maybe Money)

-- | Type of the event (action|transaction|charge).
eType :: Lens' Event (Maybe Text)

-- | The order ID for this event. Only returned for conversion events.
eOrderId :: Lens' Event (Maybe Text)

-- | The ID of the publisher for this event.
ePublisherId :: Lens' Event (Maybe Int64)

-- | Earnings by the publisher.
eEarnings :: Lens' Event (Maybe Money)

-- | The name of the publisher for this event.
ePublisherName :: Lens' Event (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data PublishersGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
PGRAdvertisers :: PublishersGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
PGRPublishers :: PublishersGetRole

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', or 'charge'. Optional.
data ReportsGetEventType

-- | <tt>action</tt> Event type is action.
Action :: ReportsGetEventType

-- | <tt>charge</tt> Event type is charge.
Charge :: ReportsGetEventType

-- | <tt>transaction</tt> Event type is transaction.
Transaction :: ReportsGetEventType

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled', or 'invalid'. Optional.
data ReportsGetStatus

-- | <tt>active</tt> Event is currently active.
Active :: ReportsGetStatus

-- | <tt>canceled</tt> Event is currently canceled.
Canceled :: ReportsGetStatus

-- | <tt>invalid</tt> Event is currently invalid.
Invalid :: ReportsGetStatus

-- | The promotion type.
data LinksListPromotionType

-- | <pre>
--   coupon
--   </pre>
Coupon :: LinksListPromotionType

-- | <pre>
--   free_gift
--   </pre>
FreeGift :: LinksListPromotionType

-- | <pre>
--   free_shipping
--   </pre>
FreeShipping :: LinksListPromotionType

-- | <pre>
--   percent_off
--   </pre>
PercentOff :: LinksListPromotionType

-- | <pre>
--   price_cut
--   </pre>
PriceCut :: LinksListPromotionType

-- | Filters out all events that are not of the given type. Valid values:
--   'action', 'transaction', 'charge'. Optional.
data EventsListType

-- | <tt>action</tt> 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.
ELTAction :: EventsListType

-- | <tt>charge</tt> A charge event is typically a payment between an
--   advertiser, publisher or Google.
ELTCharge :: EventsListType

-- | <tt>transaction</tt> A conversion event, typically an e-commerce
--   transaction. Some advertisers use a transaction to record other types
--   of events, such as magazine subscriptions.
ELTTransaction :: EventsListType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LLRAdvertisers :: LinksListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LLRPublishers :: LinksListRole

-- | The type of report being requested. Valid values: 'order_delta'.
--   Required.
data ReportsGetReportType

-- | <tt>order_delta</tt> The order delta report type.
OrderDelta :: ReportsGetReportType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data AdvertisersListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
ALRAdvertisers :: AdvertisersListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
ALRPublishers :: AdvertisersListRole

-- | An ApiMoneyProto.
--   
--   <i>See:</i> <a>money</a> smart constructor.
data Money

-- | Creates a value of <a>Money</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mAmount</a></li>
--   <li><a>mCurrencyCode</a></li>
--   </ul>
money :: Money

-- | The amount of money.
mAmount :: Lens' Money (Maybe Double)

-- | The 3-letter code of the currency in question.
mCurrencyCode :: Lens' Money (Maybe Text)

-- | A LinkResource.
--   
--   <i>See:</i> <a>link</a> smart constructor.
data Link

-- | Creates a value of <a>Link</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAuthorship</a></li>
--   <li><a>lDestinationURL</a></li>
--   <li><a>lClickTrackingURL</a></li>
--   <li><a>lCreateDate</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lAdvertiserId</a></li>
--   <li><a>lEndDate</a></li>
--   <li><a>lImageAltText</a></li>
--   <li><a>lPromotionType</a></li>
--   <li><a>lAvailability</a></li>
--   <li><a>lStartDate</a></li>
--   <li><a>lName</a></li>
--   <li><a>lImpressionTrackingURL</a></li>
--   <li><a>lSpecialOffers</a></li>
--   <li><a>lEpcSevenDayAverage</a></li>
--   <li><a>lId</a></li>
--   <li><a>lEpcNinetyDayAverage</a></li>
--   <li><a>lLinkType</a></li>
--   <li><a>lIsActive</a></li>
--   <li><a>lDuration</a></li>
--   <li><a>lDescription</a></li>
--   </ul>
link :: Link

-- | Authorship
lAuthorship :: Lens' Link (Maybe Text)

-- | The destination URL for the link.
lDestinationURL :: Lens' Link (Maybe Text)

-- | Tracking url for clicks.
lClickTrackingURL :: Lens' Link (Maybe Text)

-- | Date that this link was created.
lCreateDate :: Lens' Link (Maybe UTCTime)

-- | The kind for one entity.
lKind :: Lens' Link Text

-- | The advertiser id for the advertiser who owns this link.
lAdvertiserId :: Lens' Link (Maybe Int64)

-- | Date that this link becomes inactive.
lEndDate :: Lens' Link (Maybe UTCTime)

-- | image alt text.
lImageAltText :: Lens' Link (Maybe Text)

-- | Promotion Type
lPromotionType :: Lens' Link (Maybe Text)

-- | Availability.
lAvailability :: Lens' Link (Maybe Text)

-- | Date that this link becomes active.
lStartDate :: Lens' Link (Maybe UTCTime)

-- | The logical name for this link.
lName :: Lens' Link (Maybe Text)

-- | Tracking url for impressions.
lImpressionTrackingURL :: Lens' Link (Maybe Text)

-- | Special offers on the link.
lSpecialOffers :: Lens' Link (Maybe LinkSpecialOffers)

-- | 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)

-- | The ID of this link.
lId :: Lens' Link (Maybe Int64)

-- | 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)

-- | The link type.
lLinkType :: Lens' Link (Maybe Text)

-- | Flag for if this link is active.
lIsActive :: Lens' Link (Maybe Bool)

-- | Duration
lDuration :: Lens' Link (Maybe Text)

-- | Description.
lDescription :: Lens' Link (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksInsertRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LIRAdvertisers :: LinksInsertRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LIRPublishers :: LinksInsertRole
data CcOffers

-- | Creates a value of <a>CcOffers</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coKind</a></li>
--   <li><a>coItems</a></li>
--   </ul>
ccOffers :: CcOffers

-- | The kind for a page of credit card offers.
coKind :: Lens' CcOffers Text

-- | The credit card offers.
coItems :: Lens' CcOffers [CcOffer]

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data PublishersListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
PLRAdvertisers :: PublishersListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
PLRPublishers :: PublishersListRole
data CcOfferDefaultFeesItem

-- | Creates a value of <a>CcOfferDefaultFeesItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>codfiRateType</a></li>
--   <li><a>codfiMinRate</a></li>
--   <li><a>codfiCategory</a></li>
--   <li><a>codfiMaxRate</a></li>
--   </ul>
ccOfferDefaultFeesItem :: CcOfferDefaultFeesItem

-- | Fixed or variable.
codfiRateType :: Lens' CcOfferDefaultFeesItem (Maybe Text)

-- | 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)

-- | The type of charge, for example Purchases.
codfiCategory :: Lens' CcOfferDefaultFeesItem (Maybe Text)

-- | 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)

-- | A ReportResource representing a report of a certain type either for an
--   advertiser or publisher.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rEndDate</a></li>
--   <li><a>rTotalsRows</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rStartDate</a></li>
--   <li><a>rRows</a></li>
--   <li><a>rMatchingRowCount</a></li>
--   <li><a>rColumnNames</a></li>
--   <li><a>rType</a></li>
--   </ul>
report :: Report

-- | The end of the date range for this report, exclusive.
rEndDate :: Lens' Report (Maybe Text)

-- | The totals rows for the report
rTotalsRows :: Lens' Report [[JSONValue]]

-- | The kind for a report.
rKind :: Lens' Report Text

-- | The start of the date range for this report, inclusive.
rStartDate :: Lens' Report (Maybe Text)

-- | The rows of data for the report
rRows :: Lens' Report [[JSONValue]]

-- | The number of matching rows before paging is applied.
rMatchingRowCount :: Lens' Report (Maybe Int64)

-- | The column names for the report
rColumnNames :: Lens' Report [Text]

-- | The report type.
rType :: Lens' Report (Maybe Text)

-- | The role of the author of the link.
data LinksListAuthorship

-- | <pre>
--   advertiser
--   </pre>
LLAAdvertiser :: LinksListAuthorship

-- | <pre>
--   publisher
--   </pre>
LLAPublisher :: LinksListAuthorship
data Advertisers

-- | Creates a value of <a>Advertisers</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aNextPageToken</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aItems</a></li>
--   </ul>
advertisers :: Advertisers

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
aNextPageToken :: Lens' Advertisers (Maybe Text)

-- | The kind for a page of advertisers.
aKind :: Lens' Advertisers Text

-- | The advertiser list.
aItems :: Lens' Advertisers [Advertiser]

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data LinksGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
LGRAdvertisers :: LinksGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
LGRPublishers :: LinksGetRole

-- | The type of the link.
data LinksListLinkType

-- | <pre>
--   banner
--   </pre>
Banner :: LinksListLinkType

-- | <pre>
--   text
--   </pre>
Text :: LinksListLinkType

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data EventsListRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
ELRAdvertisers :: EventsListRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
ELRPublishers :: EventsListRole
data EventProductsItem

-- | Creates a value of <a>EventProductsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>epiSKUName</a></li>
--   <li><a>epiNetworkFee</a></li>
--   <li><a>epiQuantity</a></li>
--   <li><a>epiCategoryName</a></li>
--   <li><a>epiCategoryId</a></li>
--   <li><a>epiSKU</a></li>
--   <li><a>epiPublisherFee</a></li>
--   <li><a>epiUnitPrice</a></li>
--   <li><a>epiEarnings</a></li>
--   </ul>
eventProductsItem :: EventProductsItem

-- | Sku name of this product.
epiSKUName :: Lens' EventProductsItem (Maybe Text)

-- | Fee that the advertiser paid to the Google Affiliate Network for this
--   product.
epiNetworkFee :: Lens' EventProductsItem (Maybe Money)

-- | Quantity of this product bought/exchanged.
epiQuantity :: Lens' EventProductsItem (Maybe Int64)

-- | Name of the category this product belongs to.
epiCategoryName :: Lens' EventProductsItem (Maybe Text)

-- | Id of the category this product belongs to.
epiCategoryId :: Lens' EventProductsItem (Maybe Text)

-- | Sku of this product.
epiSKU :: Lens' EventProductsItem (Maybe Text)

-- | Fee that the advertiser paid to the publisehr for this product.
epiPublisherFee :: Lens' EventProductsItem (Maybe Money)

-- | Price per unit of this product.
epiUnitPrice :: Lens' EventProductsItem (Maybe Money)

-- | Amount earned by the publisher on this product.
epiEarnings :: Lens' EventProductsItem (Maybe Money)

-- | Filters out all advertisers for which do not have the given
--   relationship status with the requesting publisher.
data AdvertisersListRelationshipStatus

-- | <tt>approved</tt> An advertiser that has approved your application.
Approved :: AdvertisersListRelationshipStatus

-- | <tt>available</tt> An advertiser program that's accepting new
--   publishers.
Available :: AdvertisersListRelationshipStatus

-- | <tt>deactivated</tt> 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.
Deactivated :: AdvertisersListRelationshipStatus

-- | <tt>declined</tt> An advertiser that did not approve your application.
Declined :: AdvertisersListRelationshipStatus

-- | <tt>pending</tt> An advertiser program that you've already applied to,
--   but they haven't yet decided to approve or decline your application.
Pending :: AdvertisersListRelationshipStatus

-- | The set of fields to return.
data CcOffersListProjection

-- | <tt>full</tt> Include all offer fields. This is the default.
Full :: CcOffersListProjection

-- | <tt>summary</tt> Include only the basic fields needed to display an
--   offer.
Summary :: CcOffersListProjection
data CcOfferBonusRewardsItem

-- | Creates a value of <a>CcOfferBonusRewardsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cobriAmount</a></li>
--   <li><a>cobriDetails</a></li>
--   </ul>
ccOfferBonusRewardsItem :: CcOfferBonusRewardsItem

-- | How many units of reward will be granted.
cobriAmount :: Lens' CcOfferBonusRewardsItem (Maybe Double)

-- | The circumstances under which this rule applies, for example, booking
--   a flight via Orbitz.
cobriDetails :: Lens' CcOfferBonusRewardsItem (Maybe Text)

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data AdvertisersGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
AGRAdvertisers :: AdvertisersGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
AGRPublishers :: AdvertisersGetRole

-- | 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

-- | <tt>credit</tt> A credit increases the publisher's payout amount and
--   decreases the advertiser's invoice amount.
Credit :: EventsListChargeType

-- | <tt>debit</tt> A debit reduces the publisher's payout and increases
--   the advertiser's invoice amount.
Debit :: EventsListChargeType

-- | <tt>monthly_minimum</tt> A payment made to Google by an advertiser as
--   a minimum monthly network fee.
MonthlyMinimum :: EventsListChargeType

-- | <tt>other</tt> Catch all. Default if unset
Other :: EventsListChargeType

-- | <tt>slotting_fee</tt> A one time payment made from an advertiser to a
--   publisher.
SlottingFee :: EventsListChargeType

-- | <tt>tier_bonus</tt> A payment from an advertiser to a publisher for
--   the publisher maintaining a high tier level
TierBonus :: EventsListChargeType

-- | Filters out all publishers for which do not have the given
--   relationship status with the requesting publisher.
data PublishersListRelationshipStatus

-- | <tt>approved</tt> Publishers you've approved to your program.
PLRSApproved :: PublishersListRelationshipStatus

-- | <tt>available</tt> Publishers available for you to recruit.
PLRSAvailable :: PublishersListRelationshipStatus

-- | <tt>deactivated</tt> A publisher that you terminated from your
--   program. Publishers also have the ability to remove themselves from
--   your program.
PLRSDeactivated :: PublishersListRelationshipStatus

-- | <tt>declined</tt> A publisher that you did not approve to your
--   program.
PLRSDeclined :: PublishersListRelationshipStatus

-- | <tt>pending</tt> Publishers that have applied to your program. We
--   recommend reviewing and deciding on pending publishers on a weekly
--   basis.
PLRSPending :: PublishersListRelationshipStatus

-- | The role of the requester. Valid values: 'advertisers' or
--   'publishers'.
data ReportsGetRole

-- | <tt>advertisers</tt> The requester is requesting as an advertiser.
RGRAdvertisers :: ReportsGetRole

-- | <tt>publishers</tt> The requester is requesting as a publisher.
RGRPublishers :: ReportsGetRole
data Events

-- | Creates a value of <a>Events</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eveNextPageToken</a></li>
--   <li><a>eveKind</a></li>
--   <li><a>eveItems</a></li>
--   </ul>
events :: Events

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
eveNextPageToken :: Lens' Events (Maybe Text)

-- | The kind for a page of events.
eveKind :: Lens' Events Text

-- | The event list.
eveItems :: Lens' Events [Event]

-- | Special offers on the link.
--   
--   <i>See:</i> <a>linkSpecialOffers</a> smart constructor.
data LinkSpecialOffers

-- | Creates a value of <a>LinkSpecialOffers</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsoFreeShippingMin</a></li>
--   <li><a>lsoPercentOff</a></li>
--   <li><a>lsoPriceCut</a></li>
--   <li><a>lsoPriceCutMin</a></li>
--   <li><a>lsoPercentOffMin</a></li>
--   <li><a>lsoFreeShipping</a></li>
--   <li><a>lsoPromotionCodes</a></li>
--   <li><a>lsoFreeGift</a></li>
--   </ul>
linkSpecialOffers :: LinkSpecialOffers

-- | Minimum purchase amount for free shipping promotion
lsoFreeShippingMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Percent off on the purchase
lsoPercentOff :: Lens' LinkSpecialOffers (Maybe Double)

-- | Price cut on the purchase
lsoPriceCut :: Lens' LinkSpecialOffers (Maybe Money)

-- | Minimum purchase amount for price cut promotion
lsoPriceCutMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Minimum purchase amount for percent off promotion
lsoPercentOffMin :: Lens' LinkSpecialOffers (Maybe Money)

-- | Whether there is free shipping
lsoFreeShipping :: Lens' LinkSpecialOffers (Maybe Bool)

-- | List of promotion code associated with the link
lsoPromotionCodes :: Lens' LinkSpecialOffers [Text]

-- | Whether there is a free gift
lsoFreeGift :: Lens' LinkSpecialOffers (Maybe Bool)
data Publishers

-- | Creates a value of <a>Publishers</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pNextPageToken</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pItems</a></li>
--   </ul>
publishers :: Publishers

-- | The 'pageToken' to pass to the next request to get the next page, if
--   there are more to retrieve.
pNextPageToken :: Lens' Publishers (Maybe Text)

-- | The kind for a page of entities.
pKind :: Lens' Publishers Text

-- | The entity list.
pItems :: Lens' Publishers [Publisher]

-- | An AdvertiserResource.
--   
--   <i>See:</i> <a>advertiser</a> smart constructor.
data Advertiser

-- | Creates a value of <a>Advertiser</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>advAllowPublisherCreatedLinks</a></li>
--   <li><a>advContactPhone</a></li>
--   <li><a>advContactEmail</a></li>
--   <li><a>advStatus</a></li>
--   <li><a>advLogoURL</a></li>
--   <li><a>advKind</a></li>
--   <li><a>advCategory</a></li>
--   <li><a>advSiteURL</a></li>
--   <li><a>advPayoutRank</a></li>
--   <li><a>advJoinDate</a></li>
--   <li><a>advDefaultLinkId</a></li>
--   <li><a>advRedirectDomains</a></li>
--   <li><a>advName</a></li>
--   <li><a>advProductFeedsEnabled</a></li>
--   <li><a>advMerchantCenterIds</a></li>
--   <li><a>advEpcSevenDayAverage</a></li>
--   <li><a>advItem</a></li>
--   <li><a>advId</a></li>
--   <li><a>advEpcNinetyDayAverage</a></li>
--   <li><a>advCommissionDuration</a></li>
--   <li><a>advDescription</a></li>
--   </ul>
advertiser :: Advertiser

-- | True if the advertiser allows publisher created links, otherwise
--   false.
advAllowPublisherCreatedLinks :: Lens' Advertiser (Maybe Bool)

-- | Phone that this advertiser would like publishers to contact them with.
advContactPhone :: Lens' Advertiser (Maybe Text)

-- | Email that this advertiser would like publishers to contact them with.
advContactEmail :: Lens' Advertiser (Maybe Text)

-- | The status of the requesting publisher's relationship this advertiser.
advStatus :: Lens' Advertiser (Maybe Text)

-- | URL to the logo this advertiser uses on the Google Affiliate Network.
advLogoURL :: Lens' Advertiser (Maybe Text)

-- | The kind for an advertiser.
advKind :: Lens' Advertiser Text

-- | 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&amp;answer=107581
advCategory :: Lens' Advertiser (Maybe Text)

-- | URL of the website this advertiser advertises from.
advSiteURL :: Lens' Advertiser (Maybe Text)

-- | 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)

-- | Date that this advertiser was approved as a Google Affiliate Network
--   advertiser.
advJoinDate :: Lens' Advertiser (Maybe UTCTime)

-- | The default link id for this advertiser.
advDefaultLinkId :: Lens' Advertiser (Maybe Int64)

-- | List of redirect URLs for this advertiser
advRedirectDomains :: Lens' Advertiser [Text]

-- | The name of this advertiser.
advName :: Lens' Advertiser (Maybe Text)

-- | Allows advertisers to submit product listings to Google Product
--   Search.
advProductFeedsEnabled :: Lens' Advertiser (Maybe Bool)

-- | List of merchant center ids for this advertiser
advMerchantCenterIds :: Lens' Advertiser [Int64]

-- | 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)

-- | The requested advertiser.
advItem :: Lens' Advertiser (Maybe Advertiser)

-- | The ID of this advertiser.
advId :: Lens' Advertiser (Maybe Int64)

-- | 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)

-- | 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)

-- | Description of the website the advertiser advertises from.
advDescription :: Lens' Advertiser (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>ccOffer</a> smart constructor.
data CcOffer

-- | Creates a value of <a>CcOffer</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cMinimumFinanceCharge</a></li>
--   <li><a>cTrackingURL</a></li>
--   <li><a>cProhibitedCategories</a></li>
--   <li><a>cBalanceComputationMethod</a></li>
--   <li><a>cInitialSetupAndProcessingFee</a></li>
--   <li><a>cReturnedPaymentFee</a></li>
--   <li><a>cAgeMinimumDetails</a></li>
--   <li><a>cVariableRatesUpdateFrequency</a></li>
--   <li><a>cCreditLimitMin</a></li>
--   <li><a>cTravelInsurance</a></li>
--   <li><a>cApprovedCategories</a></li>
--   <li><a>cAnnualFeeDisplay</a></li>
--   <li><a>cOverLimitFee</a></li>
--   <li><a>cMaxPurchaseRate</a></li>
--   <li><a>cAgeMinimum</a></li>
--   <li><a>cVariableRatesLastUpdated</a></li>
--   <li><a>cIntroCashAdvanceTerms</a></li>
--   <li><a>cIssuerWebsite</a></li>
--   <li><a>cLuggageInsurance</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cRewardsHaveBlackoutDates</a></li>
--   <li><a>cDisclaimer</a></li>
--   <li><a>cAdditionalCardHolderFee</a></li>
--   <li><a>cExistingCustomerOnly</a></li>
--   <li><a>cEmergencyInsurance</a></li>
--   <li><a>cNetwork</a></li>
--   <li><a>cCashAdvanceTerms</a></li>
--   <li><a>cStatementCopyFee</a></li>
--   <li><a>cAprDisplay</a></li>
--   <li><a>cOffersImmediateCashReward</a></li>
--   <li><a>cRewards</a></li>
--   <li><a>cCardType</a></li>
--   <li><a>cImageURL</a></li>
--   <li><a>cCreditLimitMax</a></li>
--   <li><a>cLandingPageURL</a></li>
--   <li><a>cAnnualFee</a></li>
--   <li><a>cRewardsExpire</a></li>
--   <li><a>cFirstYearAnnualFee</a></li>
--   <li><a>cCarRentalInsurance</a></li>
--   <li><a>cPurchaseRateAdditionalDetails</a></li>
--   <li><a>cOfferId</a></li>
--   <li><a>cGracePeriodDisplay</a></li>
--   <li><a>cIntroPurchaseTerms</a></li>
--   <li><a>cCreditRatingDisplay</a></li>
--   <li><a>cBalanceTransferTerms</a></li>
--   <li><a>cLatePaymentFee</a></li>
--   <li><a>cCardBenefits</a></li>
--   <li><a>cIssuer</a></li>
--   <li><a>cCardName</a></li>
--   <li><a>cMinPurchaseRate</a></li>
--   <li><a>cFraudLiability</a></li>
--   <li><a>cForeignCurrencyTransactionFee</a></li>
--   <li><a>cExtendedWarranty</a></li>
--   <li><a>cAnnualRewardMaximum</a></li>
--   <li><a>cIssuerId</a></li>
--   <li><a>cIntroBalanceTransferTerms</a></li>
--   <li><a>cDefaultFees</a></li>
--   <li><a>cAdditionalCardBenefits</a></li>
--   <li><a>cRewardUnit</a></li>
--   <li><a>cBonusRewards</a></li>
--   <li><a>cFlightAccidentInsurance</a></li>
--   <li><a>cRewardPartner</a></li>
--   <li><a>cPurchaseRateType</a></li>
--   </ul>
ccOffer :: CcOffer

-- | Text describing how much missing the grace period will cost.
cMinimumFinanceCharge :: Lens' CcOffer (Maybe Text)

-- | The link to ping to register a click on this offer. A summary field.
cTrackingURL :: Lens' CcOffer (Maybe Text)

-- | Categories in which the issuer does not wish the card to be displayed.
--   A summary field.
cProhibitedCategories :: Lens' CcOffer [Text]

-- | Text describing how the balance is computed. A summary field.
cBalanceComputationMethod :: Lens' CcOffer (Maybe Text)

-- | Fee for setting up the card.
cInitialSetupAndProcessingFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the fee for a payment that doesn't clear. A summary
--   field.
cReturnedPaymentFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the details of the age minimum restriction.
cAgeMinimumDetails :: Lens' CcOffer (Maybe Text)

-- | How often variable rates are updated.
cVariableRatesUpdateFrequency :: Lens' CcOffer (Maybe Text)

-- | The low end for credit limits the issuer imposes on recipients of this
--   card.
cCreditLimitMin :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cTravelInsurance :: Lens' CcOffer (Maybe Text)

-- | Possible categories for this card, eg "Low Interest" or "Good." A
--   summary field.
cApprovedCategories :: Lens' CcOffer [Text]

-- | Text describing the annual fee, including any difference for the first
--   year. A summary field.
cAnnualFeeDisplay :: Lens' CcOffer (Maybe Text)

-- | Fee for exceeding the card's charge limit.
cOverLimitFee :: Lens' CcOffer (Maybe Text)

-- | The highest interest rate the issuer charges on this card. Expressed
--   as an absolute number, not as a percentage.
cMaxPurchaseRate :: Lens' CcOffer (Maybe Double)

-- | The youngest a recipient of this card may be.
cAgeMinimum :: Lens' CcOffer (Maybe Double)

-- | When variable rates were last updated.
cVariableRatesLastUpdated :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period cash advances. A
--   summary field.
cIntroCashAdvanceTerms :: Lens' CcOffer (Maybe Text)

-- | The generic link to the issuer's site.
cIssuerWebsite :: Lens' CcOffer (Maybe Text)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cLuggageInsurance :: Lens' CcOffer (Maybe Text)

-- | The kind for one credit card offer. A summary field.
cKind :: Lens' CcOffer Text

-- | For airline miles rewards, tells whether blackout dates apply to the
--   miles.
cRewardsHaveBlackoutDates :: Lens' CcOffer (Maybe Bool)

-- | 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)

-- | Any extra fees levied on card holders.
cAdditionalCardHolderFee :: Lens' CcOffer (Maybe Text)

-- | Whether this card is only available to existing customers of the
--   issuer.
cExistingCustomerOnly :: Lens' CcOffer (Maybe Bool)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cEmergencyInsurance :: Lens' CcOffer (Maybe Text)

-- | Which network (eg Visa) the card belongs to. A summary field.
cNetwork :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for cash advances. A summary field.
cCashAdvanceTerms :: Lens' CcOffer (Maybe Text)

-- | Fee for requesting a copy of your statement.
cStatementCopyFee :: Lens' CcOffer (Maybe Text)

-- | Text describing the purchase APR. A summary field.
cAprDisplay :: Lens' CcOffer (Maybe Text)

-- | Whether a cash reward program lets you get cash back sooner than end
--   of year or other longish period.
cOffersImmediateCashReward :: Lens' CcOffer (Maybe Bool)

-- | For cards with rewards programs, detailed rules about how the program
--   works.
cRewards :: Lens' CcOffer [CcOfferRewardsItem]

-- | What kind of credit card this is, for example secured or unsecured.
cCardType :: Lens' CcOffer (Maybe Text)

-- | The link to the image of the card that is shown on Connect Commerce. A
--   summary field.
cImageURL :: Lens' CcOffer (Maybe Text)

-- | The high end for credit limits the issuer imposes on recipients of
--   this card.
cCreditLimitMax :: Lens' CcOffer (Maybe Double)

-- | The link to the issuer's page for this card. A summary field.
cLandingPageURL :: Lens' CcOffer (Maybe Text)

-- | The ongoing annual fee, in dollars.
cAnnualFee :: Lens' CcOffer (Maybe Double)

-- | Whether accumulated rewards ever expire.
cRewardsExpire :: Lens' CcOffer (Maybe Bool)

-- | The annual fee for the first year, if different from the ongoing fee.
--   Optional.
cFirstYearAnnualFee :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cCarRentalInsurance :: Lens' CcOffer (Maybe Text)

-- | Text describing any additional details for the purchase rate. A
--   summary field.
cPurchaseRateAdditionalDetails :: Lens' CcOffer (Maybe Text)

-- | This offer's ID. A summary field.
cOfferId :: Lens' CcOffer (Maybe Text)

-- | Text describing the grace period before finance charges apply. A
--   summary field.
cGracePeriodDisplay :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period purchases. A summary
--   field.
cIntroPurchaseTerms :: Lens' CcOffer (Maybe Text)

-- | Text describing the credit ratings required for recipients of this
--   card, for example "Excellent/Good." A summary field.
cCreditRatingDisplay :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for balance transfers. A summary field.
cBalanceTransferTerms :: Lens' CcOffer (Maybe Text)

-- | Text describing how much a late payment will cost, eg "up to $35." A
--   summary field.
cLatePaymentFee :: Lens' CcOffer (Maybe Text)

-- | 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]

-- | Name of card issuer. A summary field.
cIssuer :: Lens' CcOffer (Maybe Text)

-- | The issuer's name for the card, including any trademark or service
--   mark designators. A summary field.
cCardName :: Lens' CcOffer (Maybe Text)

-- | The lowest interest rate the issuer charges on this card. Expressed as
--   an absolute number, not as a percentage.
cMinPurchaseRate :: Lens' CcOffer (Maybe Double)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cFraudLiability :: Lens' CcOffer (Maybe Text)

-- | Fee for each transaction involving a foreign currency.
cForeignCurrencyTransactionFee :: Lens' CcOffer (Maybe Text)

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cExtendedWarranty :: Lens' CcOffer (Maybe Text)

-- | The largest number of units you may accumulate in a year.
cAnnualRewardMaximum :: Lens' CcOffer (Maybe Double)

-- | The Google Affiliate Network ID of the advertiser making this offer.
cIssuerId :: Lens' CcOffer (Maybe Text)

-- | Text describing the terms for introductory period balance transfers. A
--   summary field.
cIntroBalanceTransferTerms :: Lens' CcOffer (Maybe Text)

-- | Fees for defaulting on your payments.
cDefaultFees :: Lens' CcOffer [CcOfferDefaultFeesItem]

-- | More marketing copy about the card's benefits. A summary field.
cAdditionalCardBenefits :: Lens' CcOffer [Text]

-- | For cards with rewards programs, the unit of reward. For example,
--   miles, cash back, points.
cRewardUnit :: Lens' CcOffer (Maybe Text)

-- | For cards with rewards programs, extra circumstances whereby
--   additional rewards may be granted.
cBonusRewards :: Lens' CcOffer [CcOfferBonusRewardsItem]

-- | If you get coverage when you use the card for the given activity, this
--   field describes it.
cFlightAccidentInsurance :: Lens' CcOffer (Maybe Text)

-- | The company that redeems the rewards, if different from the issuer.
cRewardPartner :: Lens' CcOffer (Maybe Text)

-- | Fixed or variable.
cPurchaseRateType :: Lens' CcOffer (Maybe Text)
data Links

-- | Creates a value of <a>Links</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>linNextPageToken</a></li>
--   <li><a>linKind</a></li>
--   <li><a>linItems</a></li>
--   </ul>
links :: Links

-- | The next page token.
linNextPageToken :: Lens' Links (Maybe Text)

-- | The kind for a page of links.
linKind :: Lens' Links Text

-- | The links.
linItems :: Lens' Links [Link]

-- | A PublisherResource.
--   
--   <i>See:</i> <a>publisher</a> smart constructor.
data Publisher

-- | Creates a value of <a>Publisher</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pubStatus</a></li>
--   <li><a>pubKind</a></li>
--   <li><a>pubPayoutRank</a></li>
--   <li><a>pubJoinDate</a></li>
--   <li><a>pubClassification</a></li>
--   <li><a>pubName</a></li>
--   <li><a>pubEpcSevenDayAverage</a></li>
--   <li><a>pubItem</a></li>
--   <li><a>pubId</a></li>
--   <li><a>pubEpcNinetyDayAverage</a></li>
--   <li><a>pubSites</a></li>
--   </ul>
publisher :: Publisher

-- | The status of the requesting advertiser's relationship with this
--   publisher.
pubStatus :: Lens' Publisher (Maybe Text)

-- | The kind for a publisher.
pubKind :: Lens' Publisher Text

-- | 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)

-- | Date that this publisher was approved as a Google Affiliate Network
--   publisher.
pubJoinDate :: Lens' Publisher (Maybe UTCTime)

-- | 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&amp;answer=107625&amp;ctx=cb&amp;src=cb&amp;cbid=-k5fihzthfaik&amp;cbrank=4
pubClassification :: Lens' Publisher (Maybe Text)

-- | The name of this publisher.
pubName :: Lens' Publisher (Maybe Text)

-- | 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)

-- | The requested publisher.
pubItem :: Lens' Publisher (Maybe Publisher)

-- | The ID of this publisher.
pubId :: Lens' Publisher (Maybe Int64)

-- | 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)

-- | Websites that this publisher uses to advertise.
pubSites :: Lens' Publisher [Text]
data CcOfferRewardsItem

-- | Creates a value of <a>CcOfferRewardsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coriAmount</a></li>
--   <li><a>coriExpirationMonths</a></li>
--   <li><a>coriCategory</a></li>
--   <li><a>coriAdditionalDetails</a></li>
--   <li><a>coriMaxRewardTier</a></li>
--   <li><a>coriMinRewardTier</a></li>
--   </ul>
ccOfferRewardsItem :: CcOfferRewardsItem

-- | The number of units rewarded per purchase dollar.
coriAmount :: Lens' CcOfferRewardsItem (Maybe Double)

-- | How long rewards granted by this rule last.
coriExpirationMonths :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The kind of purchases covered by this rule.
coriCategory :: Lens' CcOfferRewardsItem (Maybe Text)

-- | Other limits, for example, if this rule only applies during an
--   introductory period.
coriAdditionalDetails :: Lens' CcOfferRewardsItem (Maybe Text)

-- | The maximum purchase amount in the given category for this rule to
--   apply.
coriMaxRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The minimum purchase amount in the given category before this rule
--   applies.
coriMinRewardTier :: Lens' CcOfferRewardsItem (Maybe Double)

-- | The status of the relationship.
data LinksListRelationshipStatus

-- | <pre>
--   approved
--   </pre>
LLRSApproved :: LinksListRelationshipStatus

-- | <pre>
--   available
--   </pre>
LLRSAvailable :: LinksListRelationshipStatus

-- | Filters out all events that do not have the given status. Valid
--   values: 'active', 'canceled'. Optional.
data EventsListStatus

-- | <tt>active</tt> Event is currently active.
ELSActive :: EventsListStatus

-- | <tt>canceled</tt> Event is currently canceled.
ELSCanceled :: EventsListStatus
