-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Haskell description of the eBird API -- -- eBird is a massive collection of ornithological science -- projects developed by the Cornell Lab of Ornithology. The -- eBird API offers programmatic access to the incredible dataset -- backing these projects. -- -- This library contains a description of the eBird API as a -- servant API type. It is intended for use by those who wish to -- write their own clients for the eBird API using servant-client, -- or do custom processing of eBird data using the types defined here. -- -- If you are interested in querying the eBird API using an existing -- client, check out the ebird-client library. @package ebird-api @version 0.2.0.0 -- | The EBirdString class contains types whose values may be -- represented as strings compatible with the eBird API. module Data.EBird.API.EBirdString -- | A convenience class for converting the litany of eBird API types to -- and from their respective eBird API compatible string representations. class EBirdString a -- | Convert a value to an eBird string. toEBirdString :: EBirdString a => a -> Text -- | Parse a string into an eBird value. If parsing fails, this should -- result in Left with an error message. fromEBirdString :: EBirdString a => Text -> Either Text a -- | Parse a string into an eBird value unsafely. -- -- Be careful! This can result in runtime errors if the string is -- malformatted. unsafeFromEBirdString :: (HasCallStack, EBirdString a) => Text -> a -- | Types related to eBird product API values. module Data.EBird.API.Product -- | Values held in the top 100 contributors list returned by the eBird -- API. data Top100ListEntry Top100ListEntry :: Maybe Text -> Text -> Integer -> Integer -> Integer -> Text -> Top100ListEntry -- | The profile handle of the user, whocse profile may be seen at -- ebird.orgprofile{handle} if they have a profile [_top100ListEntryProfileHandle] :: Top100ListEntry -> Maybe Text -- | The display name of the user (typically their full name) [_top100ListEntryUserDisplayName] :: Top100ListEntry -> Text -- | The number of species the user observed on the date [_top100ListEntryNumSpecies] :: Top100ListEntry -> Integer -- | The number of complete checklists the user contributed on the date [_top100ListEntryNumCompleteChecklists] :: Top100ListEntry -> Integer -- | The ranking of the user [_top100ListEntryRowNum] :: Top100ListEntry -> Integer -- | The user ID od the user [_top100ListEntryUserId] :: Top100ListEntry -> Text top100ListEntryUserId :: Lens' Top100ListEntry Text top100ListEntryUserDisplayName :: Lens' Top100ListEntry Text top100ListEntryRowNum :: Lens' Top100ListEntry Integer top100ListEntryProfileHandle :: Lens' Top100ListEntry (Maybe Text) top100ListEntryNumSpecies :: Lens' Top100ListEntry Integer top100ListEntryNumCompleteChecklists :: Lens' Top100ListEntry Integer -- | How to rank the list returned by the Top100API. data RankTop100By -- | Rank the list by the number of species seen RankTop100BySpecies :: RankTop100By -- | Rank the list by number of contributed checklists RankTop100ByChecklists :: RankTop100By -- | Values returned by the RegionalStatisticsAPI. data RegionalStatistics RegionalStatistics :: Integer -> Integer -> Integer -> RegionalStatistics -- | Number of checklists submitted in the region [_regionalStatisticsNumChecklists] :: RegionalStatistics -> Integer -- | Number of contributors who have submitted checklists in the region [_regionalStatisticsNumContributors] :: RegionalStatistics -> Integer -- | Number of species included in checklists in the region [_regionalStatisticsNumSpecies] :: RegionalStatistics -> Integer regionalStatisticsNumSpecies :: Lens' RegionalStatistics Integer regionalStatisticsNumContributors :: Lens' RegionalStatistics Integer regionalStatisticsNumChecklists :: Lens' RegionalStatistics Integer -- | Parse a RankTop100By value parseRankTop100By :: Parser RankTop100By instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numChecklists" k Data.EBird.API.Product.RegionalStatistics Data.EBird.API.Product.RegionalStatistics a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numContributors" k Data.EBird.API.Product.RegionalStatistics Data.EBird.API.Product.RegionalStatistics a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numSpecies" k Data.EBird.API.Product.RegionalStatistics Data.EBird.API.Product.RegionalStatistics a b instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Product.Top100ListEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Product.Top100ListEntry instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Product.RegionalStatistics instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Product.RegionalStatistics instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Product.RankTop100By instance Data.String.IsString Data.EBird.API.Product.RankTop100By instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Product.RankTop100By instance GHC.Classes.Eq Data.EBird.API.Product.RankTop100By instance GHC.Read.Read Data.EBird.API.Product.RankTop100By instance GHC.Show.Show Data.EBird.API.Product.RankTop100By instance GHC.Classes.Eq Data.EBird.API.Product.RegionalStatistics instance GHC.Read.Read Data.EBird.API.Product.RegionalStatistics instance GHC.Show.Show Data.EBird.API.Product.RegionalStatistics instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numCompleteChecklists" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numSpecies" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Label.LabelOptic "profileHandle" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "rowNum" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "userDisplayName" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "userId" k Data.EBird.API.Product.Top100ListEntry Data.EBird.API.Product.Top100ListEntry a b instance GHC.Classes.Eq Data.EBird.API.Product.Top100ListEntry instance GHC.Read.Read Data.EBird.API.Product.Top100ListEntry instance GHC.Show.Show Data.EBird.API.Product.Top100ListEntry -- | Types related to eBird region API values. module Data.EBird.API.Regions -- | eBird divides the world into countries, subnational1 regions (states) -- or subnational2 regions (counties). Location regions are -- eBird-specific location identifiers. data Region -- | Regions may be specified as location IDs, e.g. L227544 Location :: Integer -> Region -- | The world is a region World :: Region -- | At the top level, the world is divided into countries Country :: Text -> Region -- | Subnational1 regions are states within countries Subnational1 :: Text -> Text -> Region -- | Subnational2 regions are counties within states Subnational2 :: Text -> Text -> Text -> Region -- | One constructor per eBird "region type" (countries, subnational1 -- (states), or subnational2 (counties)). data RegionType CountryType :: RegionType Subnational1Type :: RegionType Subnational2Type :: RegionType -- | A RegionCode is a list of one or more Regions. newtype RegionCode RegionCode :: NonEmpty Region -> RegionCode [regionCodeRegions] :: RegionCode -> NonEmpty Region -- | RegionNameFormat values specify what format the API should -- return region names in. See the constructor docs for examples. data RegionNameFormat -- | DetailedNameFormat region name values are fully qualified with -- only the country abbreviated, e.g. "Madison County, New York, US" DetailedNameFormat :: RegionNameFormat -- | DetailedNoQualNameFormat region name values are like -- DetailedNameFormat but without the country qualifier and no -- "county" annotation, e.g. "Madison, New York" DetailedNoQualNameFormat :: RegionNameFormat -- | FullNameFormat region name values are fully qualified with no -- abbreviated country name and no "county" annotation, e.g. "Madison, -- New York, United States" FullNameFormat :: RegionNameFormat -- | NameQualNameFormat region name values are just the annotated -- name, e.g. "Madison County" NameQualNameFormat :: RegionNameFormat -- | NameOnlyNameFormat region name values are just the name, e.g. -- "Madison" NameOnlyNameFormat :: RegionNameFormat -- | RevDetailedNameFormat region name values are like -- DetailedNameFormat but with reverse qualifiers, e.g. "US, New -- York, Madison County" RevDetailedNameFormat :: RegionNameFormat -- | RegionInfo specifies the name of a region (in some -- RegionNameFormat) and the bounds of that region as -- RegionBounds. data RegionInfo RegionInfo :: Text -> Maybe RegionBounds -> RegionInfo [_regionInfoName] :: RegionInfo -> Text [_regionInfoBounds] :: RegionInfo -> Maybe RegionBounds -- | RegionBounds specify the corners of a bounding box around a -- region. data RegionBounds RegionBounds :: Double -> Double -> Double -> Double -> RegionBounds [_regionBoundsMinX] :: RegionBounds -> Double [_regionBoundsMaxX] :: RegionBounds -> Double [_regionBoundsMinY] :: RegionBounds -> Double [_regionBoundsMaxY] :: RegionBounds -> Double -- | The data structure returned by the eBird SubregionListAPI and -- AdjacentRegionsAPI. data RegionListEntry RegionListEntry :: Region -> Text -> RegionListEntry [_regionListEntryRegion] :: RegionListEntry -> Region [_regionListEntryName] :: RegionListEntry -> Text regionInfoName :: Lens' RegionInfo Text regionInfoBounds :: Lens' RegionInfo (Maybe RegionBounds) regionBoundsMinY :: Lens' RegionBounds Double regionBoundsMinX :: Lens' RegionBounds Double regionBoundsMaxY :: Lens' RegionBounds Double regionBoundsMaxX :: Lens' RegionBounds Double regionListEntryRegion :: Lens' RegionListEntry Region regionListEntryName :: Lens' RegionListEntry Text -- | Parse an eBird API region code, which is a comma-separated list of one -- or more regions. To avoid the partial behavior of converting a -- sepBy1 result into a NonEmpty, we manually parse the -- first region followed by an optional tail. parseRegionCode :: Parser RegionCode -- | Parse an eBird API region. This parser only ensures that the input is -- somewhat well-formed, in that it is either: -- -- parseRegion :: Parser Region -- | Parse an eBird API RegionNameFormat. parseRegionNameFormat :: Parser RegionNameFormat -- | Parse an eBird API RegionType. parseRegionType :: Parser RegionType instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "name" k Data.EBird.API.Regions.RegionListEntry Data.EBird.API.Regions.RegionListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "region" k Data.EBird.API.Regions.RegionListEntry Data.EBird.API.Regions.RegionListEntry a b instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Regions.RegionCode instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Regions.RegionCode instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Regions.Region instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Regions.Region instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Regions.RegionInfo instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Regions.RegionInfo instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Regions.RegionBounds instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Regions.RegionBounds instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Regions.RegionListEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Regions.RegionListEntry instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Regions.Region instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Regions.RegionType instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Regions.RegionCode instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Regions.RegionNameFormat instance Data.String.IsString Data.EBird.API.Regions.Region instance Data.String.IsString Data.EBird.API.Regions.RegionType instance Data.String.IsString Data.EBird.API.Regions.RegionCode instance Data.String.IsString Data.EBird.API.Regions.RegionNameFormat instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Regions.Region instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Regions.RegionType instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Regions.RegionCode instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Regions.RegionNameFormat instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "maxX" k Data.EBird.API.Regions.RegionBounds Data.EBird.API.Regions.RegionBounds a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "maxY" k Data.EBird.API.Regions.RegionBounds Data.EBird.API.Regions.RegionBounds a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "minX" k Data.EBird.API.Regions.RegionBounds Data.EBird.API.Regions.RegionBounds a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "minY" k Data.EBird.API.Regions.RegionBounds Data.EBird.API.Regions.RegionBounds a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.EBird.API.Regions.RegionBounds, b GHC.Types.~ GHC.Maybe.Maybe Data.EBird.API.Regions.RegionBounds) => Optics.Label.LabelOptic "bounds" k Data.EBird.API.Regions.RegionInfo Data.EBird.API.Regions.RegionInfo a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "name" k Data.EBird.API.Regions.RegionInfo Data.EBird.API.Regions.RegionInfo a b instance GHC.Classes.Eq Data.EBird.API.Regions.Region instance GHC.Read.Read Data.EBird.API.Regions.Region instance GHC.Show.Show Data.EBird.API.Regions.Region instance GHC.Classes.Eq Data.EBird.API.Regions.RegionType instance GHC.Read.Read Data.EBird.API.Regions.RegionType instance GHC.Show.Show Data.EBird.API.Regions.RegionType instance GHC.Classes.Eq Data.EBird.API.Regions.RegionCode instance GHC.Read.Read Data.EBird.API.Regions.RegionCode instance GHC.Show.Show Data.EBird.API.Regions.RegionCode instance GHC.Classes.Eq Data.EBird.API.Regions.RegionNameFormat instance GHC.Read.Read Data.EBird.API.Regions.RegionNameFormat instance GHC.Show.Show Data.EBird.API.Regions.RegionNameFormat instance GHC.Classes.Eq Data.EBird.API.Regions.RegionBounds instance GHC.Read.Read Data.EBird.API.Regions.RegionBounds instance GHC.Show.Show Data.EBird.API.Regions.RegionBounds instance GHC.Classes.Eq Data.EBird.API.Regions.RegionInfo instance GHC.Read.Read Data.EBird.API.Regions.RegionInfo instance GHC.Show.Show Data.EBird.API.Regions.RegionInfo instance GHC.Classes.Eq Data.EBird.API.Regions.RegionListEntry instance GHC.Read.Read Data.EBird.API.Regions.RegionListEntry instance GHC.Show.Show Data.EBird.API.Regions.RegionListEntry -- | Types related to eBird taxonomy-related API values. module Data.EBird.API.Taxonomy -- | Taxa in the eBird taxonomy. data Taxon Taxon :: Text -> Text -> SpeciesCode -> TaxonomyCategory -> Double -> [Text] -> [Text] -> [Text] -> Text -> Maybe Text -> Maybe Text -> Maybe Text -> Taxon -- | Scientific name, e.g. "Bombycilla garrulus/cedrorum" [_taxonScientificName] :: Taxon -> Text -- | Common name, e.g. "Bohemian/Cedar Waxwing" [_taxonCommonName] :: Taxon -> Text -- | eBird species code, e.g. "waxwin" [_taxonSpeciesCode] :: Taxon -> SpeciesCode -- | eBird species category, e.g. "slash" -- -- See the eBird documentation for more information on species -- categories [_taxonCategory] :: Taxon -> TaxonomyCategory -- | A numeric value that determines the location of this taxon in the -- taxonomy list, e.g. 29257.0 [_taxonTaxonOrder] :: Taxon -> Double -- | Banding codes, e.g. ["BOWA"] for Bohemian Waxwing. [_taxonBandingCodes] :: Taxon -> [Text] -- | Common name codes, e.g. ["BOWA","CEDW","CEWA"] [_taxonCommonNameCodes] :: Taxon -> [Text] -- | Scientific name codes, e.g. ["BOCE","BOGA"] [_taxonScientificNameCodes] :: Taxon -> [Text] -- | Order, e.g. "Passeriformes" [_taxonOrder] :: Taxon -> Text -- | Family code, e.g. "bombyc1" [_taxonFamilyCode] :: Taxon -> Maybe Text -- | Family common name, e.g. "Waxwings" [_taxonFamilyCommonName] :: Taxon -> Maybe Text -- | Family scientific name, e.g. "Bombycillidae" [_taxonFamilyScientificName] :: Taxon -> Maybe Text -- | eBird species codes, simply Text; e.g. Gray Vireo is "gryvir", -- Field Sparrow is "fiespa". newtype SpeciesCode SpeciesCode :: Text -> SpeciesCode [speciesCode] :: SpeciesCode -> Text -- | A list of eBird SpeciesCodes. newtype SpeciesCodes SpeciesCodes :: [SpeciesCode] -> SpeciesCodes [speciesCodes] :: SpeciesCodes -> [SpeciesCode] -- | The taxonomy categories are explained in the eBird -- documentation. Their examples are echoed in the documentation of -- the constructors of this type. data TaxonomyCategory -- | The Species category simply identifies species, e.g. "Tundra -- Swan Cygnus columbianus" Species :: TaxonomyCategory -- | Genus or broad identification, e.g. "swan sp. Cygnus sp." Spuh :: TaxonomyCategory -- | Identifiable subspecies or group of subspecies, e.g. "Tundra Swan -- (Bewick’s) Cygnus columbianus bewickii" or "Tundra Swan -- (Whistling) Cygnus columbianus columbianus" ISSF :: TaxonomyCategory -- | Identification to species pair, e.g. "Tundra/Trumpeter Swan Cygnus -- columbianus/buccinator" Slash :: TaxonomyCategory -- | Hybrid between two species, e.g. "Tundra x Trumpeter Swan (hybrid)" Hybrid :: TaxonomyCategory -- | Hybrid between two ISSF (subspecies or subspecies groups), e.g. -- "Tundra Swan (Whistling x Bewick’s) Cygnus columbianus columbianus -- x bewickii" Intergrade :: TaxonomyCategory -- | Distinctly-plumaged domesticated varieties that may be free-flying -- (these do not count on personal lists), e.g. "Mallard (Domestic type)" Domestic :: TaxonomyCategory -- | Miscellaneous other taxa, including recently-described species yet to -- be accepted or distinctive forms that are not universally accepted, -- e.g. Red-tailed Hawk (abieticola), Upland Goose (Bar-breasted). Form :: TaxonomyCategory -- | TaxonomyCategories values contain a NonEmpty list of -- TaxonomyCategorys. newtype TaxonomyCategories TaxonomyCategories :: NonEmpty TaxonomyCategory -> TaxonomyCategories [taxonomyCategoriesCategories] :: TaxonomyCategories -> NonEmpty TaxonomyCategory taxonTaxonOrder :: Lens' Taxon Double taxonSpeciesCode :: Lens' Taxon SpeciesCode taxonScientificNameCodes :: Lens' Taxon [Text] taxonScientificName :: Lens' Taxon Text taxonOrder :: Lens' Taxon Text taxonFamilyScientificName :: Lens' Taxon (Maybe Text) taxonFamilyCommonName :: Lens' Taxon (Maybe Text) taxonFamilyCode :: Lens' Taxon (Maybe Text) taxonCommonNameCodes :: Lens' Taxon [Text] taxonCommonName :: Lens' Taxon Text taxonCategory :: Lens' Taxon TaxonomyCategory taxonBandingCodes :: Lens' Taxon [Text] -- | eBird maintains many common name translations. See their "Bird -- Names in eBird" documentation for a discussion of the languages -- they support. -- -- This type is an enumeration of those languages, and is used to support -- the eBird API endpoints which allow a locale to be specified. data SPPLocale -- | Afrikaans Af :: SPPLocale -- | Albanians Sq :: SPPLocale -- | Arabic Ar :: SPPLocale -- | Armenian Hy :: SPPLocale -- | Assamese As :: SPPLocale -- | Asturian Ast :: SPPLocale -- | Azerbaijani Az :: SPPLocale -- | Basque Eu :: SPPLocale -- | Bengali Bn :: SPPLocale -- | Bulgarian Bg :: SPPLocale -- | Catalan Ca :: SPPLocale -- | Chinese, Mandarin (traditional) Zh :: SPPLocale -- | Chinese, Simple Zh_SIM :: SPPLocale -- | Creole, Haiti Ht_HT :: SPPLocale -- | Croatian Hr :: SPPLocale -- | Czech Cs :: SPPLocale -- | Danish Da :: SPPLocale -- | Dutch Nl :: SPPLocale -- | English En :: SPPLocale -- | English, Australia En_AU :: SPPLocale -- | English, Bangladesh En_BD :: SPPLocale -- | English, Hawaii En_HAW :: SPPLocale -- | English, HBW En_HBW :: SPPLocale -- | English, India En_IN :: SPPLocale -- | English, IOC En_IOC :: SPPLocale -- | English, Kenya En_KE :: SPPLocale -- | English, Malaysia En_MY :: SPPLocale -- | English, New Zealand En_NZ :: SPPLocale -- | English, Philippines En_PH :: SPPLocale -- | English, South Africa En_ZA :: SPPLocale -- | English, UAE En_AE :: SPPLocale -- | English, United Kingdon En_UK :: SPPLocale -- | English, United States En_US :: SPPLocale -- | Faroese Fo :: SPPLocale -- | Finnish Fi :: SPPLocale -- | French Fr :: SPPLocale -- | French, AOU Fr_AOU :: SPPLocale -- | French, France Fr_FR :: SPPLocale -- | French, Canada Fr_CA :: SPPLocale -- | French, Guiana Fr_GF :: SPPLocale -- | French, Guadeloupe Fr_GP :: SPPLocale -- | French, Haiti Fr_HT :: SPPLocale -- | Gallegan Gl :: SPPLocale -- | German De :: SPPLocale -- | Greek El :: SPPLocale -- | Gujarati Gu :: SPPLocale -- | Hebrew He :: SPPLocale -- | Hindi Hi :: SPPLocale -- | Hungarian Hu :: SPPLocale -- | Icelandic Is :: SPPLocale -- | Indonesian In :: SPPLocale -- | Italian It :: SPPLocale -- | Japanese Ja :: SPPLocale -- | Korean Ko :: SPPLocale -- | Latvian Lv :: SPPLocale -- | Lithuanian Lt :: SPPLocale -- | Malayalam Ml :: SPPLocale -- | Marathi Mr :: SPPLocale -- | Mongolian Mn :: SPPLocale -- | Norwegian No :: SPPLocale -- | Odia Or :: SPPLocale -- | Persian Fa :: SPPLocale -- | Polish Pl :: SPPLocale -- | Portuguese, Angola Pt_AO :: SPPLocale -- | Portuguese, Azores Pt_RAA :: SPPLocale -- | Portuguese, Brazil Pt_Br :: SPPLocale -- | Portuguese, Madeira Pt_RAM :: SPPLocale -- | Portuguese, Portugal Pt_PT :: SPPLocale -- | Romanian Ro :: SPPLocale -- | Russian Ru :: SPPLocale -- | Serbian Sr :: SPPLocale -- | Slovak Sk :: SPPLocale -- | Slovenian Sl :: SPPLocale -- | Spanish Es :: SPPLocale -- | Spanish, Argentina Es_AR :: SPPLocale -- | Spanish, Chile Es_CL :: SPPLocale -- | Spanish, Costa Rica Es_CR :: SPPLocale -- | Spanish, Cuba Es_CU :: SPPLocale -- | Spanish, Dominican Republic Es_DO :: SPPLocale -- | Spanish, Ecuador Es_EC :: SPPLocale -- | Spanish, Honduras Es_HN :: SPPLocale -- | Spanish, Mexico Es_MX :: SPPLocale -- | Spanish, Panama Es_PA :: SPPLocale -- | Spanish, Paraguay Es_PY :: SPPLocale -- | Spanish, Peru Es_PE :: SPPLocale -- | Spanish, Puerto Rico Es_PR :: SPPLocale -- | Spanish, Spain Es_ES :: SPPLocale -- | Spanish, Uruguay Es_UY :: SPPLocale -- | Spanish, Venezuela Es_VE :: SPPLocale -- | Swedish Sv :: SPPLocale -- | Telugu Te :: SPPLocale -- | Thai Th :: SPPLocale -- | Turkish Tr :: SPPLocale -- | Ukrainian Uk :: SPPLocale -- | Values returned from the TaxaLocaleCodesAPI. data SPPLocaleListEntry SPPLocaleListEntry :: SPPLocale -> Text -> Text -> SPPLocaleListEntry -- | The code of the locale, e.g. En_US [_sppLocaleListEntryCode] :: SPPLocaleListEntry -> SPPLocale -- | The name, e.g. "English (United States)" [_sppLocaleListEntryName] :: SPPLocaleListEntry -> Text -- | The date and time of the last update for this locale [_sppLocaleListEntryLastUpdate] :: SPPLocaleListEntry -> Text -- | Values represent the different ways that taxonomic groups may be -- grouped. MerlinGrouping puts like birds together, with falcons -- next to hawks. EBirdGrouping follows taxonomic order. data SPPGrouping MerlinGrouping :: SPPGrouping EBirdGrouping :: SPPGrouping -- | Values returned by the TaxonomicGroupsAPI. data TaxonomicGroupListEntry TaxonomicGroupListEntry :: Text -> Integer -> [(Integer, Integer)] -> TaxonomicGroupListEntry -- | Name of the group, e.g. "Waterfowl" [_taxonomicGroupListEntryName] :: TaxonomicGroupListEntry -> Text -- | Numeric value determining the location of this group in the list [_taxonomicGroupListEntryOrder] :: TaxonomicGroupListEntry -> Integer -- | The bounds of the ordering, depending on the grouping [_taxonomicGroupListEntryOrderBounds] :: TaxonomicGroupListEntry -> [(Integer, Integer)] -- | Values returned by the TaxonomyVersionsAPI. data TaxonomyVersionListEntry TaxonomyVersionListEntry :: Double -> Bool -> TaxonomyVersionListEntry [_taxonomyVersionAuthorityVersion] :: TaxonomyVersionListEntry -> Double [_taxonomyVersionLatest] :: TaxonomyVersionListEntry -> Bool sppLocaleListEntryName :: Lens' SPPLocaleListEntry Text sppLocaleListEntryLastUpdate :: Lens' SPPLocaleListEntry Text sppLocaleListEntryCode :: Lens' SPPLocaleListEntry SPPLocale taxonomicGroupListEntryOrderBounds :: Lens' TaxonomicGroupListEntry [(Integer, Integer)] taxonomicGroupListEntryOrder :: Lens' TaxonomicGroupListEntry Integer taxonomicGroupListEntryName :: Lens' TaxonomicGroupListEntry Text taxonomyVersionLatest :: Lens' TaxonomyVersionListEntry Bool taxonomyVersionAuthorityVersion :: Lens' TaxonomyVersionListEntry Double -- | Parse an eBird species code, which we loosely assume is a string of -- one or more alphanumeric characters. parseSpeciesCode :: Parser SpeciesCode -- | Parse a comma separated list of zero or more SpeciesCodes parseSpeciesCodes :: Parser SpeciesCodes -- | Parse an eBird TaxonomyCategory. parseTaxonomyCategory :: Parser TaxonomyCategory -- | Parse a list of eBird API taxononomy categories. To avoid the partial -- behavior of converting a sepBy1 result into a NonEmpty, -- we manually parse the first category followed by an optional tail. parseTaxonomyCategories :: Parser TaxonomyCategories -- | Parse an eBird SPPLocale. parseSPPLocale :: Parser SPPLocale -- | Parse an eBird SPPGrouping. parseSPPGrouping :: Parser SPPGrouping instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.Taxon instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.Taxon instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.SpeciesCode instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.SpeciesCode instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.SpeciesCodes instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.SpeciesCodes instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.TaxonomyCategory instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.TaxonomyCategory instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.TaxonomyVersionListEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.TaxonomyVersionListEntry instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.SPPLocale instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.SPPLocale instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.SPPLocaleListEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.SPPLocaleListEntry instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Taxonomy.TaxonomicGroupListEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Taxonomy.TaxonomicGroupListEntry instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.TaxonomyCategory instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.TaxonomyCategories instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.SpeciesCode instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.SpeciesCodes instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.SPPLocale instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Taxonomy.SPPGrouping instance Data.String.IsString Data.EBird.API.Taxonomy.TaxonomyCategory instance Data.String.IsString Data.EBird.API.Taxonomy.TaxonomyCategories instance Data.String.IsString Data.EBird.API.Taxonomy.SpeciesCode instance Data.String.IsString Data.EBird.API.Taxonomy.SpeciesCodes instance Data.String.IsString Data.EBird.API.Taxonomy.SPPLocale instance Data.String.IsString Data.EBird.API.Taxonomy.SPPGrouping instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Taxonomy.SpeciesCode instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Taxonomy.SpeciesCodes instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Taxonomy.TaxonomyCategories instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Taxonomy.SPPLocale instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Taxonomy.SPPGrouping instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "name" k Data.EBird.API.Taxonomy.TaxonomicGroupListEntry Data.EBird.API.Taxonomy.TaxonomicGroupListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "order" k Data.EBird.API.Taxonomy.TaxonomicGroupListEntry Data.EBird.API.Taxonomy.TaxonomicGroupListEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [(GHC.Num.Integer.Integer, GHC.Num.Integer.Integer)], b GHC.Types.~ [(GHC.Num.Integer.Integer, GHC.Num.Integer.Integer)]) => Optics.Label.LabelOptic "orderBounds" k Data.EBird.API.Taxonomy.TaxonomicGroupListEntry Data.EBird.API.Taxonomy.TaxonomicGroupListEntry a b instance GHC.Classes.Eq Data.EBird.API.Taxonomy.SPPLocale instance GHC.Read.Read Data.EBird.API.Taxonomy.SPPLocale instance GHC.Show.Show Data.EBird.API.Taxonomy.SPPLocale instance GHC.Classes.Eq Data.EBird.API.Taxonomy.SPPLocaleListEntry instance GHC.Read.Read Data.EBird.API.Taxonomy.SPPLocaleListEntry instance GHC.Show.Show Data.EBird.API.Taxonomy.SPPLocaleListEntry instance GHC.Classes.Eq Data.EBird.API.Taxonomy.SPPGrouping instance GHC.Read.Read Data.EBird.API.Taxonomy.SPPGrouping instance GHC.Show.Show Data.EBird.API.Taxonomy.SPPGrouping instance GHC.Classes.Eq Data.EBird.API.Taxonomy.TaxonomicGroupListEntry instance GHC.Read.Read Data.EBird.API.Taxonomy.TaxonomicGroupListEntry instance GHC.Show.Show Data.EBird.API.Taxonomy.TaxonomicGroupListEntry instance GHC.Classes.Eq Data.EBird.API.Taxonomy.TaxonomyVersionListEntry instance GHC.Read.Read Data.EBird.API.Taxonomy.TaxonomyVersionListEntry instance GHC.Show.Show Data.EBird.API.Taxonomy.TaxonomyVersionListEntry instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.Text.Internal.Text], b GHC.Types.~ [Data.Text.Internal.Text]) => Optics.Label.LabelOptic "bandingCodes" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Taxonomy.TaxonomyCategory, b GHC.Types.~ Data.EBird.API.Taxonomy.TaxonomyCategory) => Optics.Label.LabelOptic "category" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "commonName" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.Text.Internal.Text], b GHC.Types.~ [Data.Text.Internal.Text]) => Optics.Label.LabelOptic "commonNameCodes" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Label.LabelOptic "familyCode" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Label.LabelOptic "familyCommonName" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Label.LabelOptic "familyScientificName" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "order" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "scientificName" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.Text.Internal.Text], b GHC.Types.~ [Data.Text.Internal.Text]) => Optics.Label.LabelOptic "scientificNameCodes" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Taxonomy.SpeciesCode, b GHC.Types.~ Data.EBird.API.Taxonomy.SpeciesCode) => Optics.Label.LabelOptic "speciesCode" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "taxonOrder" k Data.EBird.API.Taxonomy.Taxon Data.EBird.API.Taxonomy.Taxon a b instance GHC.Read.Read Data.EBird.API.Taxonomy.SpeciesCode instance GHC.Show.Show Data.EBird.API.Taxonomy.SpeciesCode instance GHC.Classes.Eq Data.EBird.API.Taxonomy.SpeciesCode instance GHC.Read.Read Data.EBird.API.Taxonomy.SpeciesCodes instance GHC.Show.Show Data.EBird.API.Taxonomy.SpeciesCodes instance GHC.Classes.Eq Data.EBird.API.Taxonomy.SpeciesCodes instance GHC.Classes.Eq Data.EBird.API.Taxonomy.TaxonomyCategory instance GHC.Read.Read Data.EBird.API.Taxonomy.TaxonomyCategory instance GHC.Show.Show Data.EBird.API.Taxonomy.TaxonomyCategory instance GHC.Classes.Eq Data.EBird.API.Taxonomy.Taxon instance GHC.Read.Read Data.EBird.API.Taxonomy.Taxon instance GHC.Show.Show Data.EBird.API.Taxonomy.Taxon instance GHC.Classes.Eq Data.EBird.API.Taxonomy.TaxonomyCategories instance GHC.Read.Read Data.EBird.API.Taxonomy.TaxonomyCategories instance GHC.Show.Show Data.EBird.API.Taxonomy.TaxonomyCategories -- | Utilities for parsing and printing dates and times that the eBird API -- provides. module Data.EBird.API.Util.Time -- | An EBirdDate is simply a Day. newtype EBirdDate EBirdDate :: Day -> EBirdDate [eBirdDate] :: EBirdDate -> Day -- | Since times that come from the eBird API are not provided with a time -- zone, an EBirdTime is simply a TimeOfDay. Since eBird -- times are only provided up to the minute, the todSec value will -- always be 0. newtype EBirdTime EBirdTime :: TimeOfDay -> EBirdTime [eBirdTime] :: EBirdTime -> TimeOfDay -- | Dates and times that come from the eBird API are not provided with a -- time zone. All we can do is track the Day and TimeOfDay -- with a LocalTime. Comparison of, for example, -- Observations that happened in different time zones must -- therefore be done carefully. newtype EBirdDateTime EBirdDateTime :: LocalTime -> EBirdDateTime [eBirdDateTime] :: EBirdDateTime -> LocalTime -- | Convert an EBirdDate to a gregorian representation. The first -- element is the year, the second is the month in the year (1 - 12), and -- the third is the day in the month. eBirdDateToGregorian :: EBirdDate -> (Integer, Integer, Integer) -- | Parse an eBird date. Most eBird dates are formatted as YYYY-MM-DD, but -- the ChecklistFeedAPI gives dates in a format like "19 Jul -- 2023". So, we try parsing the first format using day, and then -- use a custom parseTimeM format for the latter format if that -- fails. parseEBirdDate :: Parser EBirdDate -- | Parse an eBird time (just uses timeOfDay). parseEBirdTime :: Parser EBirdTime -- | Parse an eBird datetime (just uses localTime). parseEBirdDateTime :: Parser EBirdDateTime instance GHC.Enum.Enum Data.EBird.API.Util.Time.EBirdDate instance GHC.Classes.Ord Data.EBird.API.Util.Time.EBirdDate instance GHC.Classes.Eq Data.EBird.API.Util.Time.EBirdDate instance GHC.Read.Read Data.EBird.API.Util.Time.EBirdDate instance GHC.Show.Show Data.EBird.API.Util.Time.EBirdDate instance GHC.Classes.Ord Data.EBird.API.Util.Time.EBirdTime instance GHC.Classes.Eq Data.EBird.API.Util.Time.EBirdTime instance GHC.Read.Read Data.EBird.API.Util.Time.EBirdTime instance GHC.Show.Show Data.EBird.API.Util.Time.EBirdTime instance GHC.Classes.Ord Data.EBird.API.Util.Time.EBirdDateTime instance GHC.Classes.Eq Data.EBird.API.Util.Time.EBirdDateTime instance GHC.Read.Read Data.EBird.API.Util.Time.EBirdDateTime instance GHC.Show.Show Data.EBird.API.Util.Time.EBirdDateTime instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Util.Time.EBirdDateTime instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Util.Time.EBirdDateTime instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Util.Time.EBirdDateTime instance Data.String.IsString Data.EBird.API.Util.Time.EBirdDateTime instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Util.Time.EBirdTime instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Util.Time.EBirdTime instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Util.Time.EBirdTime instance Data.String.IsString Data.EBird.API.Util.Time.EBirdTime instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Util.Time.EBirdDate instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Util.Time.EBirdDate instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Util.Time.EBirdDate instance Data.String.IsString Data.EBird.API.Util.Time.EBirdDate -- | Types and functions related to eBird observation API values. module Data.EBird.API.Observations -- | An observation of a species submitted to eBird within a checklist. The -- DetailLevel index indicates whether the observation data -- includes "full" details. data Observation (detail :: DetailLevel) Observation :: Text -> Text -> Text -> Text -> Text -> EBirdDateTime -> Maybe Integer -> Double -> Double -> Bool -> Bool -> Bool -> Text -> ObservationDetails detail -> Observation (detail :: DetailLevel) -- | Species code, e.g. "bohwax" [_observationSpeciesCode] :: Observation (detail :: DetailLevel) -> Text -- | Common name, e.g. "Bohemian Waxwing" [_observationCommonName] :: Observation (detail :: DetailLevel) -> Text -- | Scientific name, e.g. "Bombycilla garrulus" [_observationScientificName] :: Observation (detail :: DetailLevel) -> Text -- | Location ID, e.g. "L7884500" [_observationLocationId] :: Observation (detail :: DetailLevel) -> Text -- | Location name, e.g. "Frog Pond" [_observationLocationName] :: Observation (detail :: DetailLevel) -> Text -- | Date and time of observation [_observationDateTime] :: Observation (detail :: DetailLevel) -> EBirdDateTime -- | How many were seen? Sometimes omitted. [_observationHowMany] :: Observation (detail :: DetailLevel) -> Maybe Integer -- | Observation latitude [_observationLatitude] :: Observation (detail :: DetailLevel) -> Double -- | Observation longitude [_observationLongitude] :: Observation (detail :: DetailLevel) -> Double -- | Is this observation valid? [_observationValid] :: Observation (detail :: DetailLevel) -> Bool -- | Has this observation been reviewed? [_observationReviewed] :: Observation (detail :: DetailLevel) -> Bool -- | Is the location of this observation private? [_observationLocationPrivate] :: Observation (detail :: DetailLevel) -> Bool -- | Submission ID [_observationSubId] :: Observation (detail :: DetailLevel) -> Text [_observationFullDetail] :: Observation (detail :: DetailLevel) -> ObservationDetails detail -- | Extra details that may be attached to an observation. At the moment, -- it only seems possible to get Full detailed observations from -- the notable observation endpoints (e.g. -- RecentNotableObservationsAPI). data ObservationDetails (detail :: DetailLevel) [NoDetails] :: ObservationDetails 'Simple [FullDetails] :: Region -> Text -> Region -> Text -> Region -> Text -> Text -> Text -> Text -> Bool -> Bool -> Text -> Text -> Bool -> ObservationDetails 'Full -- | Observation values of existentially quantified detail. data SomeObservation [SomeObservation] :: Observation detail -> SomeObservation -- | The promoted constructors of this type are used as type-level indices -- on the Observation type to determine whether an observation is -- Simple detail or Full detail. data DetailLevel Simple :: DetailLevel Full :: DetailLevel -- | Values representing the ways that observations may be sorted in -- responses from the API. data SortObservationsBy SortObservationsByDate :: SortObservationsBy SortObservationsBySpecies :: SortObservationsBy -- | Values representing how to pick which Observations are returned -- from the HistoricalObservationsAPI in the case that there are -- several observations of the same species on the date. data SelectObservation SelectFirstObservation :: SelectObservation SelectLastObservation :: SelectObservation observationValid :: forall detail_aWMa. Lens' (Observation detail_aWMa) Bool observationSubId :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationSpeciesCode :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationScientificName :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationReviewed :: forall detail_aWMa. Lens' (Observation detail_aWMa) Bool observationLongitude :: forall detail_aWMa. Lens' (Observation detail_aWMa) Double observationLocationPrivate :: forall detail_aWMa. Lens' (Observation detail_aWMa) Bool observationLocationName :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationLocationId :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationLatitude :: forall detail_aWMa. Lens' (Observation detail_aWMa) Double observationHowMany :: forall detail_aWMa. Lens' (Observation detail_aWMa) (Maybe Integer) observationFullDetail :: forall detail_aWMa detail_aXcx. Lens (Observation detail_aWMa) (Observation detail_aXcx) (ObservationDetails detail_aWMa) (ObservationDetails detail_aXcx) observationDateTime :: forall detail_aWMa. Lens' (Observation detail_aWMa) EBirdDateTime observationCommonName :: forall detail_aWMa. Lens' (Observation detail_aWMa) Text observationDetailsSubnational2Code :: Lens' (ObservationDetails 'Full) Region observationDetailsSubnational2Name :: Lens' (ObservationDetails 'Full) Text observationDetailsSubnational1Code :: Lens' (ObservationDetails 'Full) Region observationDetailsSubnational1Name :: Lens' (ObservationDetails 'Full) Text observationDetailsCountryCode :: Lens' (ObservationDetails 'Full) Region observationDetailsCountryName :: Lens' (ObservationDetails 'Full) Text observationDetailsUserDisplayName :: Lens' (ObservationDetails 'Full) Text observationDetailsObsId :: Lens' (ObservationDetails 'Full) Text observationDetailsChecklistId :: Lens' (ObservationDetails 'Full) Text observationDetailsPresenceNoted :: Lens' (ObservationDetails 'Full) Bool observationDetailsHasComments :: Lens' (ObservationDetails 'Full) Bool observationDetailsLastName :: Lens' (ObservationDetails 'Full) Text observationDetailsFirstName :: Lens' (ObservationDetails 'Full) Text observationDetailsHasRichMedia :: Lens' (ObservationDetails 'Full) Bool -- | Parse a list of eBird API taxononomy categories. To avoid the partial -- behavior of converting a sepBy1 result into a NonEmpty, -- we manually parse the first category followed by an optional tail. parseDetailLevel :: Parser DetailLevel -- | Parse a SortObservationsBy value parseSortObservationsBy :: Parser SortObservationsBy -- | Parse a SelectObservation value parseSelectObservation :: Parser SelectObservation instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "commonName" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "dateTime" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Observations.ObservationDetails detail1, b GHC.Types.~ Data.EBird.API.Observations.ObservationDetails detail2) => Optics.Label.LabelOptic "fullDetail" k (Data.EBird.API.Observations.Observation detail1) (Data.EBird.API.Observations.Observation detail2) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Maybe.Maybe GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "howMany" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "latitude" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationId" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationName" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "locationPrivate" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "longitude" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "reviewed" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "scientificName" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "speciesCode" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subId" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "valid" k (Data.EBird.API.Observations.Observation detail) (Data.EBird.API.Observations.Observation detail) a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "subnational2Code" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.EBird.API.Regions.Region Data.EBird.API.Regions.Region instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "subnational2Name" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "subnational1Code" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.EBird.API.Regions.Region Data.EBird.API.Regions.Region instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "subnational1Name" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "countryCode" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.EBird.API.Regions.Region Data.EBird.API.Regions.Region instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "countryName" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "userDisplayName" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "obsId" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "checklistId" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "presenceNoted" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) GHC.Types.Bool GHC.Types.Bool instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "hasComments" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) GHC.Types.Bool GHC.Types.Bool instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "lastName" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "firstName" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) Data.Text.Internal.Text Data.Text.Internal.Text instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens) => Optics.Label.LabelOptic "hasRichMedia" k (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) GHC.Types.Bool GHC.Types.Bool instance Data.Aeson.Types.FromJSON.FromJSON (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Simple) instance Data.Aeson.Types.ToJSON.ToJSON (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Simple) instance Data.Aeson.Types.FromJSON.FromJSON (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Full) instance Data.Aeson.Types.ToJSON.ToJSON (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Full) instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Observations.SomeObservation instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Observations.SomeObservation instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Observations.DetailLevel instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Observations.SortObservationsBy instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Observations.SelectObservation instance Data.String.IsString Data.EBird.API.Observations.DetailLevel instance Data.String.IsString Data.EBird.API.Observations.SortObservationsBy instance Data.String.IsString Data.EBird.API.Observations.SelectObservation instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Observations.DetailLevel instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Observations.SortObservationsBy instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Observations.SelectObservation instance GHC.Classes.Eq Data.EBird.API.Observations.DetailLevel instance GHC.Read.Read Data.EBird.API.Observations.DetailLevel instance GHC.Show.Show Data.EBird.API.Observations.DetailLevel instance GHC.Classes.Eq Data.EBird.API.Observations.SortObservationsBy instance GHC.Read.Read Data.EBird.API.Observations.SortObservationsBy instance GHC.Show.Show Data.EBird.API.Observations.SortObservationsBy instance GHC.Classes.Eq Data.EBird.API.Observations.SelectObservation instance GHC.Read.Read Data.EBird.API.Observations.SelectObservation instance GHC.Show.Show Data.EBird.API.Observations.SelectObservation instance GHC.Show.Show (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Simple) instance GHC.Show.Show (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Full) instance GHC.Classes.Eq (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Simple) instance GHC.Classes.Eq (Data.EBird.API.Observations.Observation 'Data.EBird.API.Observations.Full) instance GHC.Show.Show (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Simple) instance GHC.Show.Show (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) instance GHC.Classes.Eq (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Simple) instance GHC.Classes.Eq (Data.EBird.API.Observations.ObservationDetails 'Data.EBird.API.Observations.Full) instance GHC.Show.Show Data.EBird.API.Observations.SomeObservation -- | Types and functions related to eBird hotspot API values. module Data.EBird.API.Hotspots -- | eBird hotspots, as returned by the RegionHotspotsAPI data Hotspot Hotspot :: Text -> Text -> Region -> Region -> Region -> Double -> Double -> Maybe EBirdDateTime -> Maybe Integer -> Hotspot -- | Location ID of the hotspot [_hotspotLocationId] :: Hotspot -> Text -- | Name of the hotspot [_hotspotLocationName] :: Hotspot -> Text -- | The country the hotspot is in [_hotspotCountryCode] :: Hotspot -> Region -- | The state the hotspot is in [_hotspotSubnational1Code] :: Hotspot -> Region -- | The county the hotspot is in [_hotspotSubnational2Code] :: Hotspot -> Region -- | The latitude of the hotspot [_hotspotLatitude] :: Hotspot -> Double -- | The longitude of the hotspot [_hotspotLongitude] :: Hotspot -> Double -- | The date and time of the latest observation at the hotspot. Could be -- Nothing if the hotspot has never been birded [_hotspotLatestObsDateTime] :: Hotspot -> Maybe EBirdDateTime -- | The number of species ever seen at the hotspot. Could be -- Nothing if the hotspot has never been birded [_hotspotNumSpeciesAllTime] :: Hotspot -> Maybe Integer hotspotSubnational2Code :: Lens' Hotspot Region hotspotSubnational1Code :: Lens' Hotspot Region hotspotNumSpeciesAllTime :: Lens' Hotspot (Maybe Integer) hotspotLongitude :: Lens' Hotspot Double hotspotLocationName :: Lens' Hotspot Text hotspotLocationId :: Lens' Hotspot Text hotspotLatitude :: Lens' Hotspot Double hotspotLatestObsDateTime :: Lens' Hotspot (Maybe EBirdDateTime) hotspotCountryCode :: Lens' Hotspot Region -- | Used to specify what format hotspot values should be returned in from -- the hotspots APIs. data CSVOrJSONFormat CSVFormat :: CSVOrJSONFormat JSONFormat :: CSVOrJSONFormat -- | Parse a list of eBird API taxononomy categories. To avoid the partial -- behavior of converting a sepBy1 result into a NonEmpty, -- we manually parse the first category followed by an optional tail. parseCSVOrJSONFormat :: Parser CSVOrJSONFormat instance GHC.Classes.Eq Data.EBird.API.Hotspots.CSVOrJSONFormat instance GHC.Read.Read Data.EBird.API.Hotspots.CSVOrJSONFormat instance GHC.Show.Show Data.EBird.API.Hotspots.CSVOrJSONFormat instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Hotspots.CSVOrJSONFormat instance Data.String.IsString Data.EBird.API.Hotspots.CSVOrJSONFormat instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Hotspots.CSVOrJSONFormat instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "countryCode" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ GHC.Maybe.Maybe Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "latestObsDateTime" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "latitude" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationId" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationName" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "longitude" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Maybe.Maybe GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numSpeciesAllTime" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "subnational1Code" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "subnational2Code" k Data.EBird.API.Hotspots.Hotspot Data.EBird.API.Hotspots.Hotspot a b instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Hotspots.Hotspot instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Hotspots.Hotspot instance GHC.Classes.Eq Data.EBird.API.Hotspots.Hotspot instance GHC.Read.Read Data.EBird.API.Hotspots.Hotspot instance GHC.Show.Show Data.EBird.API.Hotspots.Hotspot -- | Types related to eBird checklist API values. module Data.EBird.API.Checklists -- | Values returned by the ViewChecklistAPI data Checklist Checklist :: Text -> Text -> Text -> Text -> Text -> Maybe Double -> Bool -> EBirdDateTime -> EBirdDateTime -> EBirdDateTime -> Bool -> Text -> Integer -> Maybe Double -> Maybe Text -> Region -> Text -> Text -> Text -> Text -> Integer -> [SubAux] -> [SubAuxAI] -> [ChecklistObservation] -> Checklist -- | Project ID, e.g. "EBIRD" [_checklistProjectId] :: Checklist -> Text -- | Checklist submission ID, e.g. "S144646447" [_checklistSubId] :: Checklist -> Text -- | Checklist protocol ID, e.g. "P21" [_checklistProtocolId] :: Checklist -> Text -- | Checklist location ID [_checklistLocationId] :: Checklist -> Text -- | Checklist group ID [_checklistGroupId] :: Checklist -> Text -- | Checklist duration, only Just for checklists of appropriate -- protocols (e.g. not incidentals) [_checklistDurationHours] :: Checklist -> Maybe Double -- | Was every bird observed reported? [_checklistAllObsReported] :: Checklist -> Bool -- | What date and time was the checklist created (i.e. submitted)? [_checklistCreationDateTime] :: Checklist -> EBirdDateTime -- | What date and time what the checklist last edited? [_checklistLastEditedDateTime] :: Checklist -> EBirdDateTime -- | What date and time what the checklist started? [_checklistObsDateTime] :: Checklist -> EBirdDateTime -- | TODO: Not sure what this is for [_checklistObsTimeValid] :: Checklist -> Bool -- | The ID of the checklist, e.g. "CL24936" [_checklistChecklistId] :: Checklist -> Text -- | The number of observers on this checklist [_checklistNumObservers] :: Checklist -> Integer -- | Distance travelled during this checklist in kilometers, only -- Just for checklists of appropriate protocols (e.g. not -- incidentals) [_checklistEffortDistanceKm] :: Checklist -> Maybe Double -- | The unit of distance used for the checklist submission (e.g. "mi"), -- only Just for checklists of appropriate protocols (e.g. not -- incidentals) [_checklistEffortDistanceEnteredUnit] :: Checklist -> Maybe Text -- | The subnational1 region (state) that the checklist was submitted in [_checklistSubnational1Code] :: Checklist -> Region -- | Method of checklist submission [_checklistSubmissionMethodCode] :: Checklist -> Text -- | Version of the method of checklist submission, e.g. "2.13.2_SDK33" [_checklistSubmissionMethodVersion] :: Checklist -> Text -- | Display-ready version of the method of checklist submission, e.g. -- "2.13.2" [_checklistSubmissionMethodVersionDisp] :: Checklist -> Text -- | Display name of the user that submitted the checklist [_checklistUserDisplayName] :: Checklist -> Text -- | Number of species included in observations on this checklist [_checklistNumSpecies] :: Checklist -> Integer -- | Submission auxiliary entry methods -- -- TODO: Not sure what these are about [_checklistSubAux] :: Checklist -> [SubAux] -- | Submission auxiliary entry methods that use aritificial intelligence -- -- TODO: Not sure what these are about [_checklistSubAuxAI] :: Checklist -> [SubAuxAI] -- | Observations included in the checklist [_checklistObs] :: Checklist -> [ChecklistObservation] -- | Observation values included in checklists. data ChecklistObservation ChecklistObservation :: SpeciesCode -> EBirdDateTime -> Text -> Text -> ChecklistObservation -- | Species code of the species, e.g. "norfli" [_checklistObservationSpeciesCode] :: ChecklistObservation -> SpeciesCode -- | The date and time of the observation. It is not clear when this would -- not be equal to the checklistObsDateTime field of the enclosing -- checklist. [_checklistObservationObsDateTime] :: ChecklistObservation -> EBirdDateTime -- | ID of the observation [_checklistObservationObsId] :: ChecklistObservation -> Text -- | A string representation of the quantity of the observation. If just -- the presence is noted, the string will be "X" [_checklistObservationHowManyStr] :: ChecklistObservation -> Text -- | Values included in the checklistSubAux field of -- Checklists. data SubAux SubAux :: Text -> Text -> Text -> Text -> SubAux -- | Submission ID [_subAuxSubId] :: SubAux -> Text -- | E.g. "nocturnal" [_subAuxFieldName] :: SubAux -> Text -- | E.g. "ebird_nocturnal" [_subAuxEntryMethodCode] :: SubAux -> Text -- | E.g. "0" [_subAuxAuxCode] :: SubAux -> Text -- | Values included in the checklistSubAuxAI field of -- Checklists. data SubAuxAI SubAuxAI :: Text -> Text -> Text -> Text -> Integer -> SubAuxAI -- | Submission ID [_subAuxAISubId] :: SubAuxAI -> Text -- | E.g. "concurrent" [_subAuxAIMethod] :: SubAuxAI -> Text -- | E.g. "sound" [_subAuxAIType] :: SubAuxAI -> Text -- | E.g. "merlin" [_subAuxAISource] :: SubAuxAI -> Text -- | E.g. 0 [_subAuxEventId] :: SubAuxAI -> Integer -- | eBird checklists. Note that we do not include some redundant fields of -- checklist values returned by the API (e.g. subID, which is -- always the same value as subId). data ChecklistFeedEntry ChecklistFeedEntry :: Text -> Text -> Text -> Integer -> EBirdDate -> EBirdTime -> LocationData -> ChecklistFeedEntry -- | The location ID of the checklist [_checklistFeedEntryLocationId] :: ChecklistFeedEntry -> Text -- | Checklist submission ID [_checklistFeedEntrySubId] :: ChecklistFeedEntry -> Text -- | The display name of the user that submitted this checklist [_checklistFeedEntryUserDisplayName] :: ChecklistFeedEntry -> Text -- | Number of species included on this checklist [_checklistFeedEntryNumSpecies] :: ChecklistFeedEntry -> Integer -- | Date that this checklist was started [_checklistFeedEntryDate] :: ChecklistFeedEntry -> EBirdDate -- | Time that this checklist was started [_checklistFeedEntryTime] :: ChecklistFeedEntry -> EBirdTime -- | Location data for the checklist [_checklistFeedEntryLocationData] :: ChecklistFeedEntry -> LocationData -- | eBird checklist or hotspot location data. Note that we do not include -- some redundant fields of location data values returned by the API -- (e.g. locName, which is always the same value as -- name). data LocationData LocationData :: Text -> Double -> Double -> Region -> Text -> Region -> Text -> Region -> Text -> Bool -> Text -> LocationData -- | Name of the location [_locationDataName] :: LocationData -> Text -- | Latitude of the location [_locationDataLatitude] :: LocationData -> Double -- | Longitude of the location [_locationDataLongitude] :: LocationData -> Double -- | Country code of the location [_locationDataCountryCode] :: LocationData -> Region -- | Country name of the location [_locationDataCountryName] :: LocationData -> Text -- | Subnational1 region that this location is in [_locationDataSubnational1Code] :: LocationData -> Region -- | Name of the subnational1 region that this location is in [_locationDataSubnational1Name] :: LocationData -> Text -- | Subnational2 region that this location is in [_locationDataSubnational2Code] :: LocationData -> Region -- | Name of the subnational2 region that this location is in [_locationDataSubnational2Name] :: LocationData -> Text -- | Is this location an eBird hotspot? [_locationDataIsHotspot] :: LocationData -> Bool -- | A compound name for the location consisting of the location name, -- county name, state name, and country name. [_locationDataHeirarchicalName] :: LocationData -> Text -- | How to rank the list returned by the Top100API. data SortChecklistsBy -- | Sort checklists by the date of the observations they contain SortChecklistsByDateCreated :: SortChecklistsBy -- | Sort checklists by the date they were submitted SortChecklistsByDateSubmitted :: SortChecklistsBy checklistUserDisplayName :: Lens' Checklist Text checklistSubnational1Code :: Lens' Checklist Region checklistSubmissionMethodVersionDisp :: Lens' Checklist Text checklistSubmissionMethodVersion :: Lens' Checklist Text checklistSubmissionMethodCode :: Lens' Checklist Text checklistSubId :: Lens' Checklist Text checklistSubAuxAI :: Lens' Checklist [SubAuxAI] checklistSubAux :: Lens' Checklist [SubAux] checklistProtocolId :: Lens' Checklist Text checklistProjectId :: Lens' Checklist Text checklistObsTimeValid :: Lens' Checklist Bool checklistObsDateTime :: Lens' Checklist EBirdDateTime checklistObs :: Lens' Checklist [ChecklistObservation] checklistNumSpecies :: Lens' Checklist Integer checklistNumObservers :: Lens' Checklist Integer checklistLocationId :: Lens' Checklist Text checklistLastEditedDateTime :: Lens' Checklist EBirdDateTime checklistGroupId :: Lens' Checklist Text checklistEffortDistanceKm :: Lens' Checklist (Maybe Double) checklistEffortDistanceEnteredUnit :: Lens' Checklist (Maybe Text) checklistDurationHours :: Lens' Checklist (Maybe Double) checklistCreationDateTime :: Lens' Checklist EBirdDateTime checklistChecklistId :: Lens' Checklist Text checklistAllObsReported :: Lens' Checklist Bool checklistObservationSpeciesCode :: Lens' ChecklistObservation SpeciesCode checklistObservationObsId :: Lens' ChecklistObservation Text checklistObservationObsDateTime :: Lens' ChecklistObservation EBirdDateTime checklistObservationHowManyStr :: Lens' ChecklistObservation Text subAuxSubId :: Lens' SubAux Text subAuxFieldName :: Lens' SubAux Text subAuxEntryMethodCode :: Lens' SubAux Text subAuxAuxCode :: Lens' SubAux Text subAuxEventId :: Lens' SubAuxAI Integer subAuxAIType :: Lens' SubAuxAI Text subAuxAISubId :: Lens' SubAuxAI Text subAuxAISource :: Lens' SubAuxAI Text subAuxAIMethod :: Lens' SubAuxAI Text checklistFeedEntryUserDisplayName :: Lens' ChecklistFeedEntry Text checklistFeedEntryTime :: Lens' ChecklistFeedEntry EBirdTime checklistFeedEntrySubId :: Lens' ChecklistFeedEntry Text checklistFeedEntryNumSpecies :: Lens' ChecklistFeedEntry Integer checklistFeedEntryLocationId :: Lens' ChecklistFeedEntry Text checklistFeedEntryLocationData :: Lens' ChecklistFeedEntry LocationData checklistFeedEntryDate :: Lens' ChecklistFeedEntry EBirdDate locationDataSubnational2Name :: Lens' LocationData Text locationDataSubnational2Code :: Lens' LocationData Region locationDataSubnational1Name :: Lens' LocationData Text locationDataSubnational1Code :: Lens' LocationData Region locationDataName :: Lens' LocationData Text locationDataLongitude :: Lens' LocationData Double locationDataLatitude :: Lens' LocationData Double locationDataIsHotspot :: Lens' LocationData Bool locationDataHeirarchicalName :: Lens' LocationData Text locationDataCountryName :: Lens' LocationData Text locationDataCountryCode :: Lens' LocationData Region -- | Parse a SortChecklistsBy value parseSortChecklistsBy :: Parser SortChecklistsBy instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "countryCode" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "countryName" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "heirarchicalName" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "isHotspot" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "latitude" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Double, b GHC.Types.~ GHC.Types.Double) => Optics.Label.LabelOptic "longitude" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "name" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "subnational1Code" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subnational1Name" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "subnational2Code" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subnational2Name" k Data.EBird.API.Checklists.LocationData Data.EBird.API.Checklists.LocationData a b instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.Checklist instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.Checklist instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.ChecklistObservation instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.ChecklistObservation instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.SubAux instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.SubAux instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.SubAuxAI instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.SubAuxAI instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.ChecklistFeedEntry instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.ChecklistFeedEntry instance Data.Aeson.Types.FromJSON.FromJSON Data.EBird.API.Checklists.LocationData instance Data.Aeson.Types.ToJSON.ToJSON Data.EBird.API.Checklists.LocationData instance Data.EBird.API.EBirdString.EBirdString Data.EBird.API.Checklists.SortChecklistsBy instance Data.String.IsString Data.EBird.API.Checklists.SortChecklistsBy instance Web.Internal.HttpApiData.ToHttpApiData Data.EBird.API.Checklists.SortChecklistsBy instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDate, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDate) => Optics.Label.LabelOptic "date" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Checklists.LocationData, b GHC.Types.~ Data.EBird.API.Checklists.LocationData) => Optics.Label.LabelOptic "locationData" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationId" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numSpecies" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subId" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdTime) => Optics.Label.LabelOptic "time" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "userDisplayName" k Data.EBird.API.Checklists.ChecklistFeedEntry Data.EBird.API.Checklists.ChecklistFeedEntry a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "method" k Data.EBird.API.Checklists.SubAuxAI Data.EBird.API.Checklists.SubAuxAI a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "source" k Data.EBird.API.Checklists.SubAuxAI Data.EBird.API.Checklists.SubAuxAI a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subId" k Data.EBird.API.Checklists.SubAuxAI Data.EBird.API.Checklists.SubAuxAI a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "type" k Data.EBird.API.Checklists.SubAuxAI Data.EBird.API.Checklists.SubAuxAI a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "auxCode" k Data.EBird.API.Checklists.SubAux Data.EBird.API.Checklists.SubAux a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "entryMethodCode" k Data.EBird.API.Checklists.SubAux Data.EBird.API.Checklists.SubAux a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "fieldName" k Data.EBird.API.Checklists.SubAux Data.EBird.API.Checklists.SubAux a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subId" k Data.EBird.API.Checklists.SubAux Data.EBird.API.Checklists.SubAux a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "howManyStr" k Data.EBird.API.Checklists.ChecklistObservation Data.EBird.API.Checklists.ChecklistObservation a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "obsDateTime" k Data.EBird.API.Checklists.ChecklistObservation Data.EBird.API.Checklists.ChecklistObservation a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "obsId" k Data.EBird.API.Checklists.ChecklistObservation Data.EBird.API.Checklists.ChecklistObservation a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Taxonomy.SpeciesCode, b GHC.Types.~ Data.EBird.API.Taxonomy.SpeciesCode) => Optics.Label.LabelOptic "speciesCode" k Data.EBird.API.Checklists.ChecklistObservation Data.EBird.API.Checklists.ChecklistObservation a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "allObsReported" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "checklistId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "creationDateTime" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe GHC.Types.Double, b GHC.Types.~ GHC.Maybe.Maybe GHC.Types.Double) => Optics.Label.LabelOptic "durationHours" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text, b GHC.Types.~ GHC.Maybe.Maybe Data.Text.Internal.Text) => Optics.Label.LabelOptic "effortDistanceEnteredUnit" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Maybe.Maybe GHC.Types.Double, b GHC.Types.~ GHC.Maybe.Maybe GHC.Types.Double) => Optics.Label.LabelOptic "effortDistanceKm" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "groupId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "lastEditedDateTime" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "locationId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numObservers" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Num.Integer.Integer, b GHC.Types.~ GHC.Num.Integer.Integer) => Optics.Label.LabelOptic "numSpecies" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.EBird.API.Checklists.ChecklistObservation], b GHC.Types.~ [Data.EBird.API.Checklists.ChecklistObservation]) => Optics.Label.LabelOptic "obs" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime, b GHC.Types.~ Data.EBird.API.Util.Time.EBirdDateTime) => Optics.Label.LabelOptic "obsDateTime" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ GHC.Types.Bool, b GHC.Types.~ GHC.Types.Bool) => Optics.Label.LabelOptic "obsTimeValid" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "projectId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "protocolId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.EBird.API.Checklists.SubAux], b GHC.Types.~ [Data.EBird.API.Checklists.SubAux]) => Optics.Label.LabelOptic "subAux" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ [Data.EBird.API.Checklists.SubAuxAI], b GHC.Types.~ [Data.EBird.API.Checklists.SubAuxAI]) => Optics.Label.LabelOptic "subAuxAI" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "subId" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "submissionMethodCode" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "submissionMethodVersion" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "submissionMethodVersionDisp" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.EBird.API.Regions.Region, b GHC.Types.~ Data.EBird.API.Regions.Region) => Optics.Label.LabelOptic "subnational1Code" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance (k GHC.Types.~ Optics.Internal.Optic.Types.A_Lens, a GHC.Types.~ Data.Text.Internal.Text, b GHC.Types.~ Data.Text.Internal.Text) => Optics.Label.LabelOptic "userDisplayName" k Data.EBird.API.Checklists.Checklist Data.EBird.API.Checklists.Checklist a b instance GHC.Classes.Eq Data.EBird.API.Checklists.ChecklistObservation instance GHC.Read.Read Data.EBird.API.Checklists.ChecklistObservation instance GHC.Show.Show Data.EBird.API.Checklists.ChecklistObservation instance GHC.Classes.Eq Data.EBird.API.Checklists.SubAux instance GHC.Read.Read Data.EBird.API.Checklists.SubAux instance GHC.Show.Show Data.EBird.API.Checklists.SubAux instance GHC.Classes.Eq Data.EBird.API.Checklists.SubAuxAI instance GHC.Read.Read Data.EBird.API.Checklists.SubAuxAI instance GHC.Show.Show Data.EBird.API.Checklists.SubAuxAI instance GHC.Classes.Eq Data.EBird.API.Checklists.Checklist instance GHC.Read.Read Data.EBird.API.Checklists.Checklist instance GHC.Show.Show Data.EBird.API.Checklists.Checklist instance GHC.Classes.Eq Data.EBird.API.Checklists.LocationData instance GHC.Read.Read Data.EBird.API.Checklists.LocationData instance GHC.Show.Show Data.EBird.API.Checklists.LocationData instance GHC.Classes.Eq Data.EBird.API.Checklists.ChecklistFeedEntry instance GHC.Read.Read Data.EBird.API.Checklists.ChecklistFeedEntry instance GHC.Show.Show Data.EBird.API.Checklists.ChecklistFeedEntry instance GHC.Classes.Eq Data.EBird.API.Checklists.SortChecklistsBy instance GHC.Read.Read Data.EBird.API.Checklists.SortChecklistsBy instance GHC.Show.Show Data.EBird.API.Checklists.SortChecklistsBy -- | A description of the eBird API as a servant API type. -- -- Intended for use by those who wish to write their own clients for the -- eBird API using servant-client. -- -- If you are interested in querying the eBird API using an -- existing client, check out the ebird-client library. module Data.EBird.API -- | The eBird API as a Haskell type. type EBirdAPI = RecentObservationsAPI :<|> RecentNotableObservationsAPI :<|> RecentSpeciesObservationsAPI :<|> RecentNearbyObservationsAPI :<|> RecentNearbySpeciesObservationsAPI :<|> RecentNearestSpeciesObservationsAPI :<|> RecentNearbyNotableObservationsAPI :<|> HistoricalObservationsAPI :<|> RecentChecklistsAPI :<|> Top100API :<|> ChecklistFeedAPI :<|> RegionalStatisticsAPI :<|> SpeciesListAPI :<|> ViewChecklistAPI :<|> RegionHotspotsAPI :<|> NearbyHotspotsAPI :<|> HotspotInfoAPI :<|> TaxonomyAPI :<|> TaxonomicFormsAPI :<|> TaxaLocaleCodesAPI :<|> TaxonomyVersionsAPI :<|> TaxonomicGroupsAPI :<|> RegionInfoAPI :<|> SubregionListAPI :<|> AdjacentRegionsAPI -- | Convenient synonym for requiring an x-ebirdapitoken on a -- route type WithAPIKey = Header' '[Required] "x-ebirdapitoken" Text -- | Recent observations within a region. Note that this endpoint only ever -- returns Simple detail observations. -- -- See the eBird API documentation for this route. type RecentObservationsAPI = "v2" :> "data" :> "obs" :> WithAPIKey :> Capture "regionCode" RegionCode :> "recent" :> QueryParam "back" Integer :> QueryParam "cat" TaxonomyCategories :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "r" RegionCode :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [Observation 'Simple] -- | Recent notable observations within a region. Since this -- endpoint can return both Simple and Full detail -- observations, depending on the value provided for the "detail" query -- parameter, we existentially quantify the detail level of the resulting -- observations. -- -- See the eBird API documentation for this route. type RecentNotableObservationsAPI = "v2" :> "data" :> "obs" :> WithAPIKey :> Capture "regionCode" RegionCode :> "recent" :> "notable" :> QueryParam "back" Integer :> QueryParam "detail" DetailLevel :> QueryParam "hotspot" Bool :> QueryParam "maxResults" Integer :> QueryParam "r" RegionCode :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [SomeObservation] -- | Recent observations of a species within a region. Note that this -- endpoint only ever returns Simple detail observations. -- -- See the eBird API documentation for this route. type RecentSpeciesObservationsAPI = "v2" :> "data" :> "obs" :> WithAPIKey :> Capture "regionCode" RegionCode :> "recent" :> Capture "speciesCode" SpeciesCode :> QueryParam "back" Integer :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "r" RegionCode :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [Observation 'Simple] -- | Recent observations within some radius of some latitude/longitude. -- -- See the eBird API documentation for this route. type RecentNearbyObservationsAPI = "v2" :> "data" :> "obs" :> "geo" :> "recent" :> WithAPIKey :> QueryParam' '[Required] "lat" Double :> QueryParam' '[Required] "lng" Double :> QueryParam "dist" Integer :> QueryParam "back" Integer :> QueryParam "cat" TaxonomyCategories :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "sort" SortObservationsBy :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [Observation 'Simple] -- | Recent observations of a species within some radius of some -- latitude/longitude. -- -- See the eBird API documentation for this route. type RecentNearbySpeciesObservationsAPI = "v2" :> "data" :> "obs" :> "geo" :> "recent" :> WithAPIKey :> Capture "species" SpeciesCode :> QueryParam' '[Required] "lat" Double :> QueryParam' '[Required] "lng" Double :> QueryParam "dist" Integer :> QueryParam "back" Integer :> QueryParam "cat" TaxonomyCategories :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "sort" SortObservationsBy :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [Observation 'Simple] -- | Nearest recent observations including a species. -- -- See the eBird API documentation for this route. type RecentNearestSpeciesObservationsAPI = "v2" :> "data" :> "nearest" :> "geo" :> "recent" :> WithAPIKey :> Capture "species" SpeciesCode :> QueryParam' '[Required] "lat" Double :> QueryParam' '[Required] "lng" Double :> QueryParam "dist" Integer :> QueryParam "back" Integer :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [Observation 'Simple] -- | Recent notable observations of a within some radius of some -- latitude/longitude. -- -- See the eBird API documentation for this route. type RecentNearbyNotableObservationsAPI = "v2" :> "data" :> "obs" :> "geo" :> "recent" :> "notable" :> WithAPIKey :> QueryParam' '[Required] "lat" Double :> QueryParam' '[Required] "lng" Double :> QueryParam "dist" Integer :> QueryParam "detail" DetailLevel :> QueryParam "back" Integer :> QueryParam "hotspot" Bool :> QueryParam "maxResults" Integer :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [SomeObservation] -- | A list of all observations for each taxa seen in some -- RegionCode on a specific date. The specific observations -- returned are determined by the rank parameter - first -- observation of the species (SelectFirstObservation, default) or -- last observation (SelectLastObservation). -- -- See the eBird API documentation for this route. type HistoricalObservationsAPI = "v2" :> "data" :> "obs" :> WithAPIKey :> Capture "regionCode" RegionCode :> "historic" :> Capture "year" Integer :> Capture "month" Integer :> Capture "day" Integer :> QueryParam "cat" TaxonomyCategories :> QueryParam "detail" DetailLevel :> QueryParam "hotspot" Bool :> QueryParam "includeProvisional" Bool :> QueryParam "maxResults" Integer :> QueryParam "rank" SelectObservation :> QueryParam "r" RegionCode :> QueryParam "sppLocale" SPPLocale :> Get '[JSON] [SomeObservation] -- | A list of recent checklists submitted in a region. -- -- See the eBird API documentation for this route. type RecentChecklistsAPI = "v2" :> "product" :> "lists" :> WithAPIKey :> Capture "regionCode" RegionCode :> QueryParam "maxResults" Integer :> Get '[JSON] [ChecklistFeedEntry] -- | A list of the top 100 contributors on a given date, ranked by species -- count or checklist count. -- -- See the eBird API documentation for this route. type Top100API = "v2" :> "product" :> "top100" :> WithAPIKey :> Capture "regionCode" Region :> Capture "year" Integer :> Capture "month" Integer :> Capture "day" Integer :> QueryParam "rankedBy" RankTop100By :> QueryParam "maxResults" Integer :> Get '[JSON] [Top100ListEntry] -- | A list of checklists submitted in a region on a date. -- -- See the eBird API documentation for this route. type ChecklistFeedAPI = "v2" :> "product" :> "lists" :> WithAPIKey :> Capture "regionCode" Region :> Capture "year" Integer :> Capture "month" Integer :> Capture "day" Integer :> QueryParam "sortKey" SortChecklistsBy :> QueryParam "maxResults" Integer :> Get '[JSON] [ChecklistFeedEntry] -- | A list of checklists submitted on a date. -- -- See the eBird API documentation for this route. type RegionalStatisticsAPI = "v2" :> "product" :> "stats" :> WithAPIKey :> Capture "regionCode" Region :> Capture "year" Integer :> Capture "month" Integer :> Capture "day" Integer :> Get '[JSON] RegionalStatistics -- | A list of all species ever seen in a region. -- -- See the eBird API documentation for this route. type SpeciesListAPI = "v2" :> "product" :> "spplist" :> WithAPIKey :> Capture "regionCode" Region :> Get '[JSON] [SpeciesCode] -- | The details and observations for a checklist. -- -- See the eBird API documentation for this route. type ViewChecklistAPI = "v2" :> "product" :> "checklist" :> "view" :> WithAPIKey :> Capture "subId" Text :> Get '[JSON] Checklist -- | The hotspots within a list of one or more regions. -- -- NOTE: This endpoint switches the content type of the response based on -- a query parameter, not an "Accept" header, and for some reason it -- chooses to make the default content type CSV. Any client for this -- endpoint should hardcode the "fmt" parameter to JSONFormat. -- -- See the eBird API documentation for this route. type RegionHotspotsAPI = "v2" :> "ref" :> "hotspot" :> Capture "regionCode" RegionCode :> QueryParam "back" Integer :> QueryParam "fmt" CSVOrJSONFormat :> Get '[JSON] [Hotspot] -- | The hotspots within a radius of some latitude/longitude. -- -- NOTE: This endpoint switches the content type of the response based on -- a query parameter, not an "Accept" header, and for some reason it -- chooses to make the default content type CSV. Any client for this -- endpoint should hardcode the "fmt" parameter to JSONFormat. -- -- See the eBird API documentation for this route. type NearbyHotspotsAPI = "v2" :> "ref" :> "hotspot" :> "geo" :> QueryParam' '[Required] "lat" Double :> QueryParam' '[Required] "lng" Double :> QueryParam "back" Integer :> QueryParam "dist" Integer :> QueryParam "fmt" CSVOrJSONFormat :> Get '[JSON] [Hotspot] -- | Information about a hotspot. -- -- See the eBird API documentation for this route. type HotspotInfoAPI = "v2" :> "ref" :> "hotspot" :> "info" :> Capture "locId" Text :> Get '[JSON] LocationData -- | The eBird taxonomy, in part or in full. -- -- NOTE: This endpoint switches the content type of the response based on -- a query parameter, not an "Accept" header, and for some reason it -- chooses to make the default content type CSV. Any client for this -- endpoint should hardcode the "fmt" parameter to JSONFormat. -- -- See the eBird API documentation for this route. type TaxonomyAPI = "v2" :> "ref" :> "taxonomy" :> "ebird" :> QueryParam "cat" TaxonomyCategories :> QueryParam "fmt" CSVOrJSONFormat :> QueryParam "locale" SPPLocale :> QueryParam "species" SpeciesCodes :> QueryParam "version" Text :> Get '[JSON] [Taxon] -- | The list of subspecies of a given species recognized in the taxonomy. -- -- See the eBird API documentation for this route. type TaxonomicFormsAPI = "v2" :> "ref" :> "taxon" :> "forms" :> WithAPIKey :> Capture "speciesCode" SpeciesCode :> Get '[JSON] SpeciesCodes -- | The supported locale codes and names for species common names. -- -- See the eBird API documentation for this route. type TaxaLocaleCodesAPI = "v2" :> "ref" :> "taxa-locales" :> "ebird" :> WithAPIKey :> Header "Accept-Language" SPPLocale :> Get '[JSON] [SPPLocaleListEntry] -- | The complete list of taxonomy versions, with a flag indicating which -- is the latest. -- -- See the eBird API documentation for this route. type TaxonomyVersionsAPI = "v2" :> "ref" :> "taxonomy" :> "versions" :> Get '[JSON] [TaxonomyVersionListEntry] -- | The list of species groups, e.g. terns, finches, etc. -- -- See the eBird API documentation for this route. type TaxonomicGroupsAPI = "v2" :> "ref" :> "sppgroup" :> Capture "speciesGrouping" SPPGrouping :> QueryParam "groupNameLocale" SPPLocale :> Get '[JSON] [TaxonomicGroupListEntry] -- | Get a RegionInfo for a Region. -- -- See the eBird API documentation for this route. type RegionInfoAPI = "v2" :> "ref" :> "region" :> "info" :> WithAPIKey :> Capture "regionCode" Region :> QueryParam "regionNameFormat" RegionNameFormat :> Get '[JSON] RegionInfo -- | Get a list of subregions of a certain RegionType within a -- RegionCode. -- -- See the eBird API documentation for this route. type SubregionListAPI = "v2" :> "ref" :> "region" :> "list" :> WithAPIKey :> Capture "regionType" RegionType :> Capture "regionCode" RegionCode :> Get '[JSON] [RegionListEntry] -- | Adjacent regions to a given region. Only Subnational2 region -- codes in the United States, New Zealand, or Mexico are currently -- supported. -- -- See the eBird API documentation for this route. type AdjacentRegionsAPI = "v2" :> "ref" :> "adjacent" :> WithAPIKey :> Capture "regionCode" Region :> Get '[JSON] [RegionListEntry]