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.annotation.Experimental;
017import org.gbif.api.util.VocabularyUtils;
018
019/**
020 * Enumeration for all endpoint types.
021 */
022public enum EndpointType {
023  /**
024   * A single <a href="http://knb.ecoinformatics.org/software/eml/">EML metadata document</a> in any EML version.
025   */
026  EML,
027  /**
028   * Syndication feeds like RSS or ATOM of various flavors.
029   * The feeds can serve very different purpose, for example if attached to an organisation it can be news items.
030   * Attached to a technical installation like the IPT it should return the latest dataset resources.
031   */
032  FEED,
033  /**
034   * An OGC Web Feature Service.
035   */
036  WFS,
037  /**
038   * An OGC Web Map Service.
039   */
040  WMS,
041  /**
042   * Taxon Concept data given as RDF
043   * based on the <a href="http://rs.tdwg.org/ontology/voc/TaxonConcept.rdf">TDWG ontology</a>.
044   */
045  TCS_RDF,
046  /**
047   * A <a href="http://www.tdwg.org/standards/117/">Taxon Concept Schema</a> document.
048   */
049  TCS_XML,
050  /**
051   * A Darwin Core Archive as defined by the <a href="http://rs.tdwg.org/dwc/terms/guides/text/">Darwin Core Text Guidelines</a>.
052   */
053  DWC_ARCHIVE,
054  /**
055   * A <a href="http://digir.sourceforge.net/">DiGIR</a> service endpoint.
056   */
057  DIGIR,
058  /**
059   * A DiGIR service slightly modified for the MANIS network.
060   */
061  DIGIR_MANIS,
062  /**
063   * A <a href="http://www.tdwg.org/dav/subgroups/tapir/1.0/docs/">TAPIR</a> service.
064   */
065  TAPIR,
066  /**
067   * A <a href="http://www.biocase.org/products/protocols/">BioCASe</a> protocol compliant service.
068   */
069  BIOCASE,
070  /**
071   * A <a href="http://www.biocase.org/products/protocols/">BioCASe</a> XML Archive, as explained by the
072   * <a href="http://wiki.bgbm.org/bps/index.php/Archiving">BioCASe wiki</a>.
073   */
074  BIOCASE_XML_ARCHIVE,
075  /**
076   * The Open Archives Initiative Protocol for Metadata Harvesting.
077   * A <a href="http://www.openarchives.org/OAI/openarchivesprotocol.html">OAI-PMH</a> compliant data provider service.
078   */
079  OAI_PMH,
080  /**
081   * <a href="https://github.com/CatalogueOfLife/coldp">Catalogue of Life Data Packages</a>.
082   */
083  COLDP,
084  /**
085   * <a href="https://tdwg.github.io/camtrap-dp/">CamTrap DP</a>.
086   */
087  @Experimental
088  CAMTRAP_DP_v_0_4,
089  /**
090   * Any other service not covered by this enum so far.
091   */
092  OTHER;
093
094  /**
095   * @return the matching EndpointType or null
096   */
097  public static EndpointType fromString(String endpointType) {
098    return VocabularyUtils.lookupEnum(endpointType, EndpointType.class);
099  }
100
101}