001/*
002 * Licensed under the Apache License, Version 2.0 (the "License");
003 * you may not use this file except in compliance with the License.
004 * You may obtain a copy of the License at
005 *
006 *     http://www.apache.org/licenses/LICENSE-2.0
007 *
008 * Unless required by applicable law or agreed to in writing, software
009 * distributed under the License is distributed on an "AS IS" BASIS,
010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011 * See the License for the specific language governing permissions and
012 * limitations under the License.
013 */
014package org.gbif.api.vocabulary;
015
016import org.gbif.api.util.VocabularyUtils;
017
018/**
019 * Enumeration for all endpoint types.
020 */
021public enum EndpointType {
022  /**
023   * A single <a href="http://knb.ecoinformatics.org/software/eml/">EML metadata document</a> in any EML version.
024   */
025  EML,
026  /**
027   * Syndication feeds like RSS or ATOM of various flavors.
028   * The feeds can serve very different purpose, for example if attached to an organisation it can be news items.
029   * Attached to a technical installation like the IPT it should return the latest dataset resources.
030   */
031  FEED,
032  /**
033   * An OGC Web Feature Service.
034   */
035  WFS,
036  /**
037   * An OGC Web Map Service.
038   */
039  WMS,
040  /**
041   * Taxon Concept data given as RDF
042   * based on the <a href="http://rs.tdwg.org/ontology/voc/TaxonConcept.rdf">TDWG ontology</a>.
043   */
044  TCS_RDF,
045  /**
046   * A <a href="http://www.tdwg.org/standards/117/">Taxon Concept Schema</a> document.
047   */
048  TCS_XML,
049  /**
050   * A Darwin Core Archive as defined by the <a href="http://rs.tdwg.org/dwc/terms/guides/text/">Darwin Core Text Guidelines</a>.
051   */
052  DWC_ARCHIVE,
053  /**
054   * A <a href="http://digir.sourceforge.net/">DiGIR</a> service endpoint.
055   */
056  DIGIR,
057  /**
058   * A DiGIR service slightly modified for the MANIS network.
059   */
060  DIGIR_MANIS,
061  /**
062   * A <a href="http://www.tdwg.org/dav/subgroups/tapir/1.0/docs/">TAPIR</a> service.
063   */
064  TAPIR,
065  /**
066   * A <a href="http://www.biocase.org/products/protocols/">BioCASe</a> protocol compliant service.
067   */
068  BIOCASE,
069  /**
070   * A <a href="http://www.biocase.org/products/protocols/">BioCASe</a> XML Archive, as explained by the
071   * <a href="http://wiki.bgbm.org/bps/index.php/Archiving">BioCASe wiki</a>.
072   */
073  BIOCASE_XML_ARCHIVE,
074  /**
075   * The Open Archives Initiative Protocol for Metadata Harvesting.
076   * A <a href="http://www.openarchives.org/OAI/openarchivesprotocol.html">OAI-PMH</a> compliant data provider service.
077   */
078  OAI_PMH,
079  /**
080   * <a href="https://github.com/CatalogueOfLife/coldp">Catalogue of Life Data Packages</a>.
081   */
082  COLDP,
083  /**
084   * <a href="https://tdwg.github.io/camtrap-dp/">CamTrap DP</a>.
085   */
086  CAMTRAP_DP,
087  /**
088   * Any other service not covered by this enum so far.
089   */
090  OTHER;
091
092  /**
093   * @return the matching EndpointType or null
094   */
095  public static EndpointType fromString(String endpointType) {
096    return VocabularyUtils.lookupEnum(endpointType, EndpointType.class);
097  }
098
099}