content: {-
     FinFeedAPI SEC REST API
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.4
     FinFeedAPI SEC REST API API version: v1
     Contact: support@apibricks.io
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : FinFeedAPISECREST.API.ContentExtraction
  -}
  
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE FlexibleInstances #-}
  {-# LANGUAGE MonoLocalBinds #-}
  {-# LANGUAGE MultiParamTypeClasses #-}
  {-# LANGUAGE OverloadedStrings #-}
  {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}
  
  module FinFeedAPISECREST.API.ContentExtraction where
  
  import FinFeedAPISECREST.Core
  import FinFeedAPISECREST.MimeTypes
  import FinFeedAPISECREST.Model as M
  
  import qualified Data.Aeson as A
  import qualified Data.ByteString as B
  import qualified Data.ByteString.Lazy as BL
  import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)
  import qualified Data.Foldable as P
  import qualified Data.Map as Map
  import qualified Data.Maybe as P
  import qualified Data.Proxy as P (Proxy(..))
  import qualified Data.Set as Set
  import qualified Data.String as P
  import qualified Data.Text as T
  import qualified Data.Text.Encoding as T
  import qualified Data.Text.Lazy as TL
  import qualified Data.Text.Lazy.Encoding as TL
  import qualified Data.Time as TI
  import qualified Network.HTTP.Client.MultipartFormData as NH
  import qualified Network.HTTP.Media as ME
  import qualified Network.HTTP.Types as NH
  import qualified Web.FormUrlEncoded as WH
  import qualified Web.HttpApiData as WH
  
  import Data.Text (Text)
  import GHC.Base ((<|>))
  
  import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)
  import qualified Prelude as P
  
  -- * Operations
  
  
  -- ** ContentExtraction
  
  -- *** v1ExtractorGet
  
  -- | @GET \/v1\/extractor@
  -- 
  -- Extract and classify SEC filing content
  -- 
  -- Retrieves filing content from the EDGAR database and intelligently classifies it according to form type and item categories.  ### Supported Form Types  Form Type | Description ----------|------------ 8-K      | Current report filing 10-K     | Annual report filing 10-Q     | Quarterly report filing  ### Content Classification - 8-K forms: Content classified by item numbers (e.g., 1.01, 2.01) - 10-K/10-Q forms: Items categorized by their respective part and item structure  :::note Both HTML and plain text documents are supported for content extraction. :::
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1ExtractorGet
    :: AccessionNumber -- ^ "accessionNumber" -  The SEC filing accession number used to retrieve the filing from EDGAR database.
    -> FinFeedAPISECRESTRequest V1ExtractorGet MimeNoContent ((Map.Map String AnyType)) MimeJSON
  v1ExtractorGet (AccessionNumber accessionNumber) =
    _mkRequest "GET" ["/v1/extractor"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("accession_number", Just accessionNumber)
  
  data V1ExtractorGet  
  
  -- | /Optional Param/ "type" - Result type (text or html, default: text)
  instance HasOptionalParam V1ExtractorGet ParamType where
    applyOptionalParam req (ParamType xs) =
      req `addQuery` toQuery ("type", Just xs)
  -- | @application/json@
  instance Produces V1ExtractorGet MimeJSON
  
  
  -- *** v1ExtractorItemGet
  
  -- | @GET \/v1\/extractor\/item@
  -- 
  -- Extract specific item content from SEC filing
  -- 
  -- Retrieves filing content from the EDGAR database and returns only the text content of the specified item number.  ### Item Number Format  Form Type | Item Format Examples -----------|------------------- 8-K       | 1.01, 2.01, 7.01 10-K      | 1, 2, 3 10-K/10-Q | PartI 1, PartII 2  :::tip For best results, ensure the item number matches exactly with the filing's structure. :::
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1ExtractorItemGet
    :: AccessionNumber -- ^ "accessionNumber" -  The SEC filing accession number used to retrieve the filing from EDGAR database.
    -> ItemNumber -- ^ "itemNumber" -  The specific item number to extract (e.g., \"1.01\", \"2.01\", \"7.01\").
    -> FinFeedAPISECRESTRequest V1ExtractorItemGet MimeNoContent Text MimeJSON
  v1ExtractorItemGet (AccessionNumber accessionNumber) (ItemNumber itemNumber) =
    _mkRequest "GET" ["/v1/extractor/item"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("accession_number", Just accessionNumber)
      `addQuery` toQuery ("item_number", Just itemNumber)
  
  data V1ExtractorItemGet  
  
  -- | /Optional Param/ "type" - Result type (text or html, default: text)
  instance HasOptionalParam V1ExtractorItemGet ParamType where
    applyOptionalParam req (ParamType xs) =
      req `addQuery` toQuery ("type", Just xs)
  -- | @application/json@
  instance Produces V1ExtractorItemGet MimeJSON
  
  