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.FilingMetadata
  -}
  
  {-# 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.FilingMetadata 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
  
  
  -- ** FilingMetadata
  
  -- *** v1FilingsGet
  
  -- | @GET \/v1\/filings@
  -- 
  -- Query SEC filing metadata
  -- 
  -- Retrieves metadata for SEC filings based on various filter criteria with pagination and sorting support.  ### Available Sort Fields  Field Name | Description -----------|------------- AccessionNumber | SEC filing accession number FilingDate | Date when filing was submitted AcceptanceDateTime | Date and time of filing acceptance ReportDate | Date of the report Size | Size of the filing document  ### Date Format All dates must be provided in YYYY-MM-DD format  ### Form Types Form types can be provided as comma-separated values, e.g.: \"10-K,8-K,10-Q\"  :::tip For optimal performance, use date ranges and form types to narrow down your search :::
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1FilingsGet
    :: FinFeedAPISECRESTRequest V1FilingsGet MimeNoContent [DTOFilingMetadataDto] MimeJSON
  v1FilingsGet =
    _mkRequest "GET" ["/v1/filings"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1FilingsGet  
  
  -- | /Optional Param/ "cik" - Filter by Central Index Key (CIK)
  instance HasOptionalParam V1FilingsGet Cik where
    applyOptionalParam req (Cik xs) =
      req `addQuery` toQuery ("cik", Just xs)
  
  -- | /Optional Param/ "ticker" - Filter by stock ticker symbol
  instance HasOptionalParam V1FilingsGet Ticker where
    applyOptionalParam req (Ticker xs) =
      req `addQuery` toQuery ("ticker", Just xs)
  
  -- | /Optional Param/ "form_type" - Filter by form type(s) (e.g., \"10-K\", \"8-K\"). Multiple values can be comma-separated
  instance HasOptionalParam V1FilingsGet FormType where
    applyOptionalParam req (FormType xs) =
      req `addQuery` toQuery ("form_type", Just xs)
  
  -- | /Optional Param/ "filling_date_start" - Filter by filling date start (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FilingsGet FillingDateStart where
    applyOptionalParam req (FillingDateStart xs) =
      req `addQuery` toQuery ("filling_date_start", Just xs)
  
  -- | /Optional Param/ "filling_date_end" - Filter by filling date end (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FilingsGet FillingDateEnd where
    applyOptionalParam req (FillingDateEnd xs) =
      req `addQuery` toQuery ("filling_date_end", Just xs)
  
  -- | /Optional Param/ "report_date_start" - Filter by report date start (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FilingsGet ReportDateStart where
    applyOptionalParam req (ReportDateStart xs) =
      req `addQuery` toQuery ("report_date_start", Just xs)
  
  -- | /Optional Param/ "report_date_end" - Filter by report date end (inclusive), format YYYY-MM-DD
  instance HasOptionalParam V1FilingsGet ReportDateEnd where
    applyOptionalParam req (ReportDateEnd xs) =
      req `addQuery` toQuery ("report_date_end", Just xs)
  
  -- | /Optional Param/ "items_contain" - Filter filings where the 'Items' field contains the specified text
  instance HasOptionalParam V1FilingsGet ItemsContain where
    applyOptionalParam req (ItemsContain xs) =
      req `addQuery` toQuery ("items_contain", Just xs)
  
  -- | /Optional Param/ "page_size" - Number of results per page (default: 50, max: 200)
  instance HasOptionalParam V1FilingsGet PageSize where
    applyOptionalParam req (PageSize xs) =
      req `addQuery` toQuery ("page_size", Just xs)
  
  -- | /Optional Param/ "page_number" - Page number to retrieve (default: 1)
  instance HasOptionalParam V1FilingsGet PageNumber where
    applyOptionalParam req (PageNumber xs) =
      req `addQuery` toQuery ("page_number", Just xs)
  
  -- | /Optional Param/ "sort_by" - Field to sort results by (default: AccessionNumber)
  instance HasOptionalParam V1FilingsGet SortBy where
    applyOptionalParam req (SortBy xs) =
      req `addQuery` toQuery ("sort_by", Just xs)
  
  -- | /Optional Param/ "sort_order" - Sort order (asc or desc, default: desc)
  instance HasOptionalParam V1FilingsGet SortOrder where
    applyOptionalParam req (SortOrder xs) =
      req `addQuery` toQuery ("sort_order", Just xs)
  -- | @application/json@
  instance Produces V1FilingsGet MimeJSON
  
  