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


-- | Haskell eBay SDK
--   
--   eBay API wrapper in Haskell. See the git repository for example
--   usages.
@package hsebaysdk
@version 0.4.0.0


-- | Haskell SDK for Ebay Finding API
module Web.Ebay

-- | Runs an eBay Finding API search
searchWithVerb :: MonadIO m => EbayConfig -> FindVerb -> Search -> Manager -> m (Maybe SearchResponse)
simpleSearchWithVerb :: EbayConfig -> SearchRequest -> IO (Maybe SearchResponse)

-- | Default Ebay configuration for working with the finding API in a
--   sandbox.
defaultEbayConfig :: EbayConfig

-- | Generic search query for ebay api.
data Search
Search :: !Text -> Maybe OutputSelector -> Maybe SortOrder -> ![ItemFilter] -> Maybe AffiliateInfo -> Maybe ProductId -> Search
[searchKeywords] :: Search -> !Text
[searchOutputSelector] :: Search -> Maybe OutputSelector
[searchSortOrder] :: Search -> Maybe SortOrder
[searchItemFilter] :: Search -> ![ItemFilter]
[searchAffiliateInfo] :: Search -> Maybe AffiliateInfo
[searchProductId] :: Search -> Maybe ProductId

-- | Ebay Finding API search request.
data SearchRequest
SearchRequest :: !FindVerb -> Search -> SearchRequest

-- | specify the type of search
[verb] :: SearchRequest -> !FindVerb

-- | body of the search (xml or json)
[payload] :: SearchRequest -> Search

-- | Represents a Response from the eBay finding api
--   
--   TODO: Search responses technically have a list of SearchResult
data SearchResponse
SearchResponse :: FindVerb -> SearchResult -> SearchResponse
data SearchResult
SearchResult :: Text -> [SearchItem] -> SearchResult
[searchResultCount] :: SearchResult -> Text
[searchResultItems] :: SearchResult -> [SearchItem]

-- | A single ebay listing item
--   
--   Note that some fields have not yet been implemented from the ebay api
--   documentation.
data SearchItem
SearchItem :: !Text -> !Text -> !(Maybe Text) -> !Bool -> !Text -> !(Maybe Text) -> !(Maybe Text) -> !(Maybe Text) -> Condition -> SellingStatus -> Maybe ListingInfo -> SearchItem
[searchItemId] :: SearchItem -> !Text
[searchItemTitle] :: SearchItem -> !Text
[searchItemSubtitle] :: SearchItem -> !(Maybe Text)
[searchItemTopRatedListing] :: SearchItem -> !Bool
[searchItemViewItemUrl] :: SearchItem -> !Text
[searchItemGalleryUrl] :: SearchItem -> !(Maybe Text)
[searchItemGalleryPlusPictureUrl] :: SearchItem -> !(Maybe Text)
[searchItemPictureLargeUrl] :: SearchItem -> !(Maybe Text)
[searchItemCondition] :: SearchItem -> Condition
[searchItemSellingStatus] :: SearchItem -> SellingStatus
[searchItemListingInfo] :: SearchItem -> Maybe ListingInfo
data SellingStatus
SellingStatus :: !Double -> !Double -> !(Maybe Text) -> SellingState -> SellingStatus
[sellingStatusConvertedCurrentPrice] :: SellingStatus -> !Double
[sellingStatusCurrentPrice] :: SellingStatus -> !Double
[sellingStatusBidCount] :: SellingStatus -> !(Maybe Text)
[sellingStatusState] :: SellingStatus -> SellingState
data SortOrder
EndTimeSoonest :: SortOrder
BestMatch :: SortOrder
BidCountFewest :: SortOrder
BidCountMost :: SortOrder
CountryAscending :: SortOrder
CountryDescending :: SortOrder
CurrentPriceHighest :: SortOrder
DistanceNearest :: SortOrder
PricePlusShipingHighest :: SortOrder
PricePlusShippingLowest :: SortOrder
StartTimeNewest :: SortOrder

-- | Support verbs in finding api
--   
--   <a>verb</a> jargon taken from eBay docs.
data FindVerb
FindCompletedItems :: FindVerb
FindItemsAdvanced :: FindVerb
FindItemsByImage :: FindVerb
FindItemsByKeywords :: FindVerb
FindItemsByProduct :: FindVerb
FindItemsIneBayStores :: FindVerb
GetHistograms :: FindVerb
GetSearchKeywordsRecommendation :: FindVerb
GetVersion :: FindVerb

-- | Ebay api configuration.
data EbayConfig
EbayConfig :: !Text -> !Text -> !Bool -> !Text -> !Encoding -> !Encoding -> !Text -> !Text -> !Text -> !Text -> !Bool -> EbayConfig

-- | ebay api domain configuration Sandbox: svcs.sandbox.ebay.com
--   Production: svcs.ebay.com
[ebDomain] :: EbayConfig -> !Text

-- | ebay api domain configuration
[ebUri] :: EbayConfig -> !Text

-- | use https defaults to False.
[ebHttps] :: EbayConfig -> !Bool

-- | EBay API Site Id. Default is `EBAY-US'.
[ebSiteId] :: EbayConfig -> !Text

-- | Specify the response encoding.
[ebResponseEncoding] :: EbayConfig -> !Encoding

-- | Specify the request encoding.
[ebRequestEncoding] :: EbayConfig -> !Encoding
[ebAppId] :: EbayConfig -> !Text
[ebVersion] :: EbayConfig -> !Text

-- | eBay API service. Currently, this library only supports the Finding
--   API and this value is always <tt>FindingApi</tt>
[ebService] :: EbayConfig -> !Text
[ebDocUrl] :: EbayConfig -> !Text

-- | Enable debugging
[ebDebug] :: EbayConfig -> !Bool
data SellingState
Active :: SellingState
Canceled :: SellingState
Ended :: SellingState
EndedWithSales :: SellingState
EndedWithoutSales :: SellingState
newtype ItemFilter
ItemFilter :: (Text, Text) -> ItemFilter

-- | Condition is made up of condition id condition display name
data Condition
Condition :: Text -> Text -> Condition
data ListingInfo
ListingInfo :: !Bool -> !Bool -> !(Maybe Text) -> !(Maybe Text) -> !UTCTime -> !Bool -> ListingType -> !UTCTime -> ListingInfo
[listingInfoBestOfferEnabled] :: ListingInfo -> !Bool
[listingInfoBuyItNowAvailable] :: ListingInfo -> !Bool
[listingInfoBuyItNowPrice] :: ListingInfo -> !(Maybe Text)
[listingInfoConvertedBuyItNowPrice] :: ListingInfo -> !(Maybe Text)
[listingInfoEndTime] :: ListingInfo -> !UTCTime
[listingInfoGift] :: ListingInfo -> !Bool
[listingInfoType] :: ListingInfo -> ListingType
[listingInfoStartTime] :: ListingInfo -> !UTCTime
data OutputSelector
AspectHistogram :: OutputSelector
CategoryHistogram :: OutputSelector
ConditionHistogram :: OutputSelector
GalleryInfoOutput :: OutputSelector
PictureURLLarge :: OutputSelector
PictureURLSuperSize :: OutputSelector
SellerInfo :: OutputSelector
StoreInfo :: OutputSelector
UnitPriceInfo :: OutputSelector
data ProductId
EAN :: Integer -> ProductId
ISBN :: Integer -> ProductId
UPC :: Integer -> ProductId
ReferenceId :: String -> ProductId
data GalleryInfo
GalleryInfo :: ![Text] -> GalleryInfo
[galleryInfoUrls] :: GalleryInfo -> ![Text]
data AffiliateInfo
AffiliateInfo :: !Int -> !Int -> !(Maybe Int) -> AffiliateInfo

-- | The networkId specifies the third party who is your tracking partner.
--   When specifying affiliate details, this field is required. Not all
--   partners are valid for all sites.
[networkId] :: AffiliateInfo -> !Int

-- | The trackingId specifies an ID to identify you to your tracking
--   partner. The value you specify is obtained from your tracking partner.
--   For eBay Partner Network, the trackingId is the Campaign ID ("campid")
--   provided by eBay Partner Network. A Campaign ID is a 10-digit, unique
--   number to be used for associating traffic. A Campaign ID is valid
--   across all programs to which you have been accepted.
[trackingId] :: AffiliateInfo -> !Int

-- | The customId need not be specified. You can define a customId (up to
--   256 characters) if you want to leverage it to better monitor your
--   marketing efforts. If you are using the eBay Partner Network, and you
--   provide a customId, it will be contained in the tracking URL returned
--   by eBay Partner Network.
[customId] :: AffiliateInfo -> !(Maybe Int)
instance GHC.Show.Show Web.Ebay.SearchRequest
instance GHC.Show.Show Web.Ebay.SearchResponse
instance GHC.Show.Show Web.Ebay.FindVerb
instance GHC.Show.Show Web.Ebay.SearchResult
instance GHC.Show.Show Web.Ebay.SearchItem
instance GHC.Show.Show Web.Ebay.Condition
instance GHC.Show.Show Web.Ebay.SellingStatus
instance GHC.Show.Show Web.Ebay.SellingState
instance GHC.Generics.Generic Web.Ebay.SellingState
instance GHC.Classes.Eq Web.Ebay.SellingState
instance GHC.Show.Show Web.Ebay.ListingInfo
instance GHC.Show.Show Web.Ebay.ListingType
instance GHC.Read.Read Web.Ebay.ListingType
instance GHC.Generics.Generic Web.Ebay.ListingType
instance GHC.Show.Show Web.Ebay.GalleryInfo
instance GHC.Show.Show Web.Ebay.Search
instance GHC.Generics.Generic Web.Ebay.SortOrder
instance GHC.Show.Show Web.Ebay.SortOrder
instance GHC.Show.Show Web.Ebay.AffiliateInfo
instance GHC.Read.Read Web.Ebay.AffiliateInfo
instance GHC.Classes.Eq Web.Ebay.AffiliateInfo
instance GHC.Show.Show Web.Ebay.ProductId
instance GHC.Show.Show Web.Ebay.OutputSelector
instance GHC.Read.Read Web.Ebay.OutputSelector
instance GHC.Generics.Generic Web.Ebay.OutputSelector
instance GHC.Show.Show Web.Ebay.ItemFilter
instance GHC.Show.Show Web.Ebay.EbayConfig
instance GHC.Show.Show Web.Ebay.Encoding
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.SearchRequest
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.SearchResponse
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.SearchResult
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.SearchItem
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.Condition
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.SellingStatus
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.SellingState
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.ListingInfo
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.ListingType
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.Search
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.SortOrder
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.AffiliateInfo
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.ProductId
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.OutputSelector
instance Data.Aeson.Types.FromJSON.FromJSON Web.Ebay.OutputSelector
instance Data.Aeson.Types.ToJSON.ToJSON Web.Ebay.ItemFilter
