{-# LANGUAGE DataKinds          #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric      #-}
{-# LANGUAGE FlexibleInstances  #-}
{-# LANGUAGE NoImplicitPrelude  #-}
{-# LANGUAGE OverloadedStrings  #-}
{-# LANGUAGE RecordWildCards    #-}
{-# LANGUAGE TypeFamilies       #-}
{-# LANGUAGE TypeOperators      #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
module Network.Google.Resource.DFAReporting.AdvertiserLandingPages.List
    (
    
      AdvertiserLandingPagesListResource
    
    , advertiserLandingPagesList
    , AdvertiserLandingPagesList
    
    , alplCampaignIds
    , alplSearchString
    , alplIds
    , alplProFileId
    , alplSortOrder
    , alplPageToken
    , alplSortField
    , alplSubAccountId
    , alplAdvertiserIds
    , alplArchived
    , alplMaxResults
    ) where
import           Network.Google.DFAReporting.Types
import           Network.Google.Prelude
type AdvertiserLandingPagesListResource =
     "dfareporting" :>
       "v3.2" :>
         "userprofiles" :>
           Capture "profileId" (Textual Int64) :>
             "advertiserLandingPages" :>
               QueryParams "campaignIds" (Textual Int64) :>
                 QueryParam "searchString" Text :>
                   QueryParams "ids" (Textual Int64) :>
                     QueryParam "sortOrder"
                       AdvertiserLandingPagesListSortOrder
                       :>
                       QueryParam "pageToken" Text :>
                         QueryParam "sortField"
                           AdvertiserLandingPagesListSortField
                           :>
                           QueryParam "subaccountId" (Textual Int64) :>
                             QueryParams "advertiserIds" (Textual Int64) :>
                               QueryParam "archived" Bool :>
                                 QueryParam "maxResults" (Textual Int32) :>
                                   QueryParam "alt" AltJSON :>
                                     Get '[JSON]
                                       AdvertiserLandingPagesListResponse
data AdvertiserLandingPagesList = AdvertiserLandingPagesList'
    { _alplCampaignIds   :: !(Maybe [Textual Int64])
    , _alplSearchString  :: !(Maybe Text)
    , _alplIds           :: !(Maybe [Textual Int64])
    , _alplProFileId     :: !(Textual Int64)
    , _alplSortOrder     :: !AdvertiserLandingPagesListSortOrder
    , _alplPageToken     :: !(Maybe Text)
    , _alplSortField     :: !AdvertiserLandingPagesListSortField
    , _alplSubAccountId  :: !(Maybe (Textual Int64))
    , _alplAdvertiserIds :: !(Maybe [Textual Int64])
    , _alplArchived      :: !(Maybe Bool)
    , _alplMaxResults    :: !(Textual Int32)
    } deriving (Eq,Show,Data,Typeable,Generic)
advertiserLandingPagesList
    :: Int64 
    -> AdvertiserLandingPagesList
advertiserLandingPagesList pAlplProFileId_ =
    AdvertiserLandingPagesList'
    { _alplCampaignIds = Nothing
    , _alplSearchString = Nothing
    , _alplIds = Nothing
    , _alplProFileId = _Coerce # pAlplProFileId_
    , _alplSortOrder = ALPLSOAscending
    , _alplPageToken = Nothing
    , _alplSortField = ALPLSFID
    , _alplSubAccountId = Nothing
    , _alplAdvertiserIds = Nothing
    , _alplArchived = Nothing
    , _alplMaxResults = 1000
    }
alplCampaignIds :: Lens' AdvertiserLandingPagesList [Int64]
alplCampaignIds
  = lens _alplCampaignIds
      (\ s a -> s{_alplCampaignIds = a})
      . _Default
      . _Coerce
alplSearchString :: Lens' AdvertiserLandingPagesList (Maybe Text)
alplSearchString
  = lens _alplSearchString
      (\ s a -> s{_alplSearchString = a})
alplIds :: Lens' AdvertiserLandingPagesList [Int64]
alplIds
  = lens _alplIds (\ s a -> s{_alplIds = a}) . _Default
      . _Coerce
alplProFileId :: Lens' AdvertiserLandingPagesList Int64
alplProFileId
  = lens _alplProFileId
      (\ s a -> s{_alplProFileId = a})
      . _Coerce
alplSortOrder :: Lens' AdvertiserLandingPagesList AdvertiserLandingPagesListSortOrder
alplSortOrder
  = lens _alplSortOrder
      (\ s a -> s{_alplSortOrder = a})
alplPageToken :: Lens' AdvertiserLandingPagesList (Maybe Text)
alplPageToken
  = lens _alplPageToken
      (\ s a -> s{_alplPageToken = a})
alplSortField :: Lens' AdvertiserLandingPagesList AdvertiserLandingPagesListSortField
alplSortField
  = lens _alplSortField
      (\ s a -> s{_alplSortField = a})
alplSubAccountId :: Lens' AdvertiserLandingPagesList (Maybe Int64)
alplSubAccountId
  = lens _alplSubAccountId
      (\ s a -> s{_alplSubAccountId = a})
      . mapping _Coerce
alplAdvertiserIds :: Lens' AdvertiserLandingPagesList [Int64]
alplAdvertiserIds
  = lens _alplAdvertiserIds
      (\ s a -> s{_alplAdvertiserIds = a})
      . _Default
      . _Coerce
alplArchived :: Lens' AdvertiserLandingPagesList (Maybe Bool)
alplArchived
  = lens _alplArchived (\ s a -> s{_alplArchived = a})
alplMaxResults :: Lens' AdvertiserLandingPagesList Int32
alplMaxResults
  = lens _alplMaxResults
      (\ s a -> s{_alplMaxResults = a})
      . _Coerce
instance GoogleRequest AdvertiserLandingPagesList
         where
        type Rs AdvertiserLandingPagesList =
             AdvertiserLandingPagesListResponse
        type Scopes AdvertiserLandingPagesList =
             '["https://www.googleapis.com/auth/dfatrafficking"]
        requestClient AdvertiserLandingPagesList'{..}
          = go _alplProFileId (_alplCampaignIds ^. _Default)
              _alplSearchString
              (_alplIds ^. _Default)
              (Just _alplSortOrder)
              _alplPageToken
              (Just _alplSortField)
              _alplSubAccountId
              (_alplAdvertiserIds ^. _Default)
              _alplArchived
              (Just _alplMaxResults)
              (Just AltJSON)
              dFAReportingService
          where go
                  = buildClient
                      (Proxy :: Proxy AdvertiserLandingPagesListResource)
                      mempty