ebird-api-0.2.0.0: A Haskell description of the eBird API
Copyright(c) 2023 Finley McIlwaine
LicenseMIT (see LICENSE)
MaintainerFinley McIlwaine <finleymcilwaine@gmail.com>
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.EBird.API.Taxonomy

Description

Types related to eBird taxonomy-related API values.

Synopsis

Taxonomy types

data Taxon Source #

Taxa in the eBird taxonomy.

Constructors

Taxon 

Fields

Instances

Instances details
Read Taxon Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show Taxon Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

showsPrec :: Int -> Taxon -> ShowS #

show :: Taxon -> String #

showList :: [Taxon] -> ShowS #

Eq Taxon Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

(==) :: Taxon -> Taxon -> Bool #

(/=) :: Taxon -> Taxon -> Bool #

FromJSON Taxon Source #

Explicit instance for compatibility with their field names

Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON Taxon Source #

Explicit instance for compatibility with their field names

Instance details

Defined in Data.EBird.API.Taxonomy

(k ~ A_Lens, a ~ [Text], b ~ [Text]) => LabelOptic "bandingCodes" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ TaxonomyCategory, b ~ TaxonomyCategory) => LabelOptic "category" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "commonName" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ [Text], b ~ [Text]) => LabelOptic "commonNameCodes" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "familyCode" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "familyCommonName" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "familyScientificName" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "order" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "scientificName" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ [Text], b ~ [Text]) => LabelOptic "scientificNameCodes" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ SpeciesCode, b ~ SpeciesCode) => LabelOptic "speciesCode" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

(k ~ A_Lens, a ~ Double, b ~ Double) => LabelOptic "taxonOrder" k Taxon Taxon a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Methods

labelOptic :: Optic k NoIx Taxon Taxon a b #

newtype SpeciesCode Source #

eBird species codes, simply Text; e.g. Gray Vireo is "gryvir", Field Sparrow is "fiespa".

Constructors

SpeciesCode 

Fields

Instances

Instances details
IsString SpeciesCode Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString SpeciesCode Source #

The eBird string of a SpeciesCode is simply the literal string

Instance details

Defined in Data.EBird.API.Taxonomy

Eq SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToHttpApiData SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

FromJSON SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON SpeciesCode Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

newtype SpeciesCodes Source #

A list of eBird SpeciesCodes.

Constructors

SpeciesCodes 

Instances

Instances details
IsString SpeciesCodes Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString SpeciesCodes Source #

The eBird string of a SpeciesCodes is simply the comma-separated SpeciesCodes

Instance details

Defined in Data.EBird.API.Taxonomy

Eq SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToHttpApiData SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

FromJSON SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON SpeciesCodes Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

data TaxonomyCategory Source #

The taxonomy categories are explained in the eBird documentation. Their examples are echoed in the documentation of the constructors of this type.

Constructors

Species

The Species category simply identifies species, e.g. "Tundra Swan Cygnus columbianus"

Spuh

Genus or broad identification, e.g. "swan sp. Cygnus sp."

ISSF

Identifiable subspecies or group of subspecies, e.g. "Tundra Swan (Bewick’s) Cygnus columbianus bewickii" or "Tundra Swan (Whistling) Cygnus columbianus columbianus"

Slash

Identification to species pair, e.g. "Tundra/Trumpeter Swan Cygnus columbianus/buccinator"

Hybrid

Hybrid between two species, e.g. "Tundra x Trumpeter Swan (hybrid)"

Intergrade

Hybrid between two ISSF (subspecies or subspecies groups), e.g. "Tundra Swan (Whistling x Bewick’s) Cygnus columbianus columbianus x bewickii"

Domestic

Distinctly-plumaged domesticated varieties that may be free-flying (these do not count on personal lists), e.g. "Mallard (Domestic type)"

Form

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).

Instances

Instances details
IsString TaxonomyCategory Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read TaxonomyCategory Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show TaxonomyCategory Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString TaxonomyCategory Source #

The eBird strings of the taxonomy categories are simply the lowercase constructor names.

Instance details

Defined in Data.EBird.API.Taxonomy

Eq TaxonomyCategory Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

FromJSON TaxonomyCategory Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON TaxonomyCategory Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

newtype TaxonomyCategories Source #

TaxonomyCategories values contain a NonEmpty list of TaxonomyCategorys.

Instances

Instances details
IsString TaxonomyCategories Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read TaxonomyCategories Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show TaxonomyCategories Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString TaxonomyCategories Source #

The eBird string of a TaxonomyCategories is the comma-separated list of category strings.

Instance details

Defined in Data.EBird.API.Taxonomy

Eq TaxonomyCategories Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToHttpApiData TaxonomyCategories Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Optics for taxonomy types

Auxiliary eBird taxonomy-related API types

data SPPLocale Source #

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.

Constructors

Af

Afrikaans

Sq

Albanians

Ar

Arabic

Hy

Armenian

As

Assamese

Ast

Asturian

Az

Azerbaijani

Eu

Basque

Bn

Bengali

Bg

Bulgarian

Ca

Catalan

Zh

Chinese, Mandarin (traditional)

Zh_SIM

Chinese, Simple

Ht_HT

Creole, Haiti

Hr

Croatian

Cs

Czech

Da

Danish

Nl

Dutch

En

English

En_AU

English, Australia

En_BD

English, Bangladesh

En_HAW

English, Hawaii

En_HBW

English, HBW

En_IN

English, India

En_IOC

English, IOC

En_KE

English, Kenya

En_MY

English, Malaysia

En_NZ

English, New Zealand

En_PH

English, Philippines

En_ZA

English, South Africa

En_AE

English, UAE

En_UK

English, United Kingdon

En_US

English, United States

Fo

Faroese

Fi

Finnish

Fr

French

Fr_AOU

French, AOU

Fr_FR

French, France

Fr_CA

French, Canada

Fr_GF

French, Guiana

Fr_GP

French, Guadeloupe

Fr_HT

French, Haiti

Gl

Gallegan

De

German

El

Greek

Gu

Gujarati

He

Hebrew

Hi

Hindi

Hu

Hungarian

Is

Icelandic

In

Indonesian

It

Italian

Ja

Japanese

Ko

Korean

Lv

Latvian

Lt

Lithuanian

Ml

Malayalam

Mr

Marathi

Mn

Mongolian

No

Norwegian

Or

Odia

Fa

Persian

Pl

Polish

Pt_AO

Portuguese, Angola

Pt_RAA

Portuguese, Azores

Pt_Br

Portuguese, Brazil

Pt_RAM

Portuguese, Madeira

Pt_PT

Portuguese, Portugal

Ro

Romanian

Ru

Russian

Sr

Serbian

Sk

Slovak

Sl

Slovenian

Es

Spanish

Es_AR

Spanish, Argentina

Es_CL

Spanish, Chile

Es_CR

Spanish, Costa Rica

Es_CU

Spanish, Cuba

Es_DO

Spanish, Dominican Republic

Es_EC

Spanish, Ecuador

Es_HN

Spanish, Honduras

Es_MX

Spanish, Mexico

Es_PA

Spanish, Panama

Es_PY

Spanish, Paraguay

Es_PE

Spanish, Peru

Es_PR

Spanish, Puerto Rico

Es_ES

Spanish, Spain

Es_UY

Spanish, Uruguay

Es_VE

Spanish, Venezuela

Sv

Swedish

Te

Telugu

Th

Thai

Tr

Turkish

Uk

Ukrainian

Instances

Instances details
IsString SPPLocale Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString SPPLocale Source #

The eBird strings of the species locales are simply the lowercase constructor names.

Instance details

Defined in Data.EBird.API.Taxonomy

Eq SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToHttpApiData SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

FromJSON SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON SPPLocale Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

data SPPLocaleListEntry Source #

Values returned from the TaxaLocaleCodesAPI.

Constructors

SPPLocaleListEntry 

Fields

data SPPGrouping Source #

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.

Instances

Instances details
IsString SPPGrouping Source #

Use this instance carefully! It throws runtime exceptions if the string is malformatted.

Instance details

Defined in Data.EBird.API.Taxonomy

Read SPPGrouping Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show SPPGrouping Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

EBirdString SPPGrouping Source #

The eBird string of an SPPGrouping is either "merlin" or "ebird"

Instance details

Defined in Data.EBird.API.Taxonomy

Eq SPPGrouping Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

ToHttpApiData SPPGrouping Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

data TaxonomicGroupListEntry Source #

Values returned by the TaxonomicGroupsAPI.

Constructors

TaxonomicGroupListEntry 

Fields

Instances

Instances details
Read TaxonomicGroupListEntry Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Show TaxonomicGroupListEntry Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

Eq TaxonomicGroupListEntry Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

FromJSON TaxonomicGroupListEntry Source #

Explicit instance for compatibility with their field names

Instance details

Defined in Data.EBird.API.Taxonomy

ToJSON TaxonomicGroupListEntry Source #

Explicit instance for compatibility with their field names

Instance details

Defined in Data.EBird.API.Taxonomy

(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "name" k TaxonomicGroupListEntry TaxonomicGroupListEntry a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

(k ~ A_Lens, a ~ Integer, b ~ Integer) => LabelOptic "order" k TaxonomicGroupListEntry TaxonomicGroupListEntry a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

(k ~ A_Lens, a ~ [(Integer, Integer)], b ~ [(Integer, Integer)]) => LabelOptic "orderBounds" k TaxonomicGroupListEntry TaxonomicGroupListEntry a b Source # 
Instance details

Defined in Data.EBird.API.Taxonomy

data TaxonomyVersionListEntry Source #

Values returned by the TaxonomyVersionsAPI.

Optics for taxonomy-related types

attoparsec parsers

parseSpeciesCode :: Parser SpeciesCode Source #

Parse an eBird species code, which we loosely assume is a string of one or more alphanumeric characters.

parseSpeciesCodes :: Parser SpeciesCodes Source #

Parse a comma separated list of zero or more SpeciesCodes

parseTaxonomyCategories :: Parser TaxonomyCategories Source #

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.