# info.description
## Documentatie

De GPP-zoeken-API voorziet in een interface met de onderliggende zoekmachine 
(Elastic Search).

Via deze API is het mogelijk om:

* publicaties en documenten beschikbaar te maken voor zoeken
* achtergrondtaken inplannen om publicaties en documenten te verwijderen wanneer deze
  ingetrokken worden, zodat ze niet meer beschikbaar zijn voor zoeken
* zoekopdrachten (met facets) uitvoeren om publicaties en/of documenten te vinden

Wanneer een document geïndexeerd wordt met een ondersteund bestandsformaat (zie 
[Apache Tika](https://tika.apache.org/1.10/formats.html)), dan wordt de tekstuele
inhoud van het bestand ook in de index opgenomen en zoekopdrachten zullen deze inhoud
doorzoeken.

**Authentication**

Deze API maakt gebruik van API Key authenticatie. Alle requests moeten gebruik maken van de `Authorization: Token <token-value>` HTTP header (`<token-value>` wordt vervangen met de echte API sleutel). De API-sleutels worden beheerd in het beheerinterface, deze sleutels kan je verkrijgen door een administrator te benaderen.

# paths./api/v1/documenten.post.description
Indexeer de documentmetadata van de Register API in Elasticsearch.

# paths./api/v1/documenten/{uuid}.delete.description
Verwijder de documentgegevens uit de index.
Merk op dat dit een achtergrondtaak inplant om de data te verwijderen.

# paths./api/v1/onderwerpen.post.description
Indexeer de onderwerpmetadata van de Register API in Elasticsearch.

# paths./api/v1/onderwerpen/{uuid}.delete.description
Verwijder de onderwerpgegevens uit de index.
Merk op dat dit een achtergrondtaak inplant om de data te verwijderen.

# paths./api/v1/publicaties.post.description
Indexeer de publicatiemetadata van de Register API in Elasticsearch.

# paths./api/v1/publicaties/{uuid}.delete.description
Verwijder de publicatiedata uit de index.
Merk op dat dit een achtergrondtaak inplant om de data te verwijderen.

# paths./api/v1/search.post.description
Zoek binnen de publicatie- en/of documenten-records.

# components.schemas.Document.properties.publicatie.description
De unieke identificatie van de publicatie.

# components.schemas.Document.properties.informatieCategorieen.description
De informatiecategorieën van de publicatie waar het document bij hoort.

# components.schemas.Document.properties.onderwerpen.description
De onderwerpen gekoppeld aan de publicatie waar het document bijhoort. Onderwerpen gaan over maatschappelijk relevante informatie die meerdere publicaties omvatten. Ze kunnen tientallen jaren relevant blijven en overstijgen de typische levensduur van een enkele publicatie.

# components.schemas.Document.properties.publisher.description
De organisatie die de publicatie waartoe dit document hoort heeft gepubliceerd.

# components.schemas.Document.properties.identifiers.items.description
Een kenmerk dat bij dit document hoort. Merk op dat meerdere documenten eenzelfde kenmerk kunnen hebben omdat er meer context nodig is om een document uniek te identificeren. Deze extra context wordt bewust niet geïndexeerd.

# components.schemas.Document.properties.identifiers.description
De kenmerken die dit document identificeren.

# components.schemas.Document.properties.creatiedatum.description
De datum waarop het document ontstaan is. Niet te verwarren met de registratiedatum - de creatiedatum valt typisch *voor* de registratiedatum.

# components.schemas.Document.properties.gepubliceerdOp.description
Systeemdatum en -tijd wanneer het document gepubliceerd was in de GPP-Publicatiebank.

# components.schemas.Document.properties.registratiedatum.description
Systeemdatum en -tijd wanneer het document geregistreed was in de GPP-Publicatiebank. Niet te verwarren met de creatiedatum van de publicatie, die typisch *voor* de registratiedatum valt.

# components.schemas.Document.properties.laatstGewijzigdDatum.description
Systeemdatum en -tijd wanneer het document laatst gewijzigd is in de GPP-Publicatiebank.

# components.schemas.DocumentIndex.properties.publicatie.description
De unieke identificatie van de publicatie.

# components.schemas.DocumentIndex.properties.informatieCategorieen.description
De informatiecategorieën van de publicatie waar het document bij hoort.

# components.schemas.DocumentIndex.properties.onderwerpen.description
De onderwerpen gekoppeld aan de publicatie waar het document bijhoort. Onderwerpen gaan over maatschappelijk relevante informatie die meerdere publicaties omvatten. Ze kunnen tientallen jaren relevant blijven en overstijgen de typische levensduur van een enkele publicatie.

# components.schemas.DocumentIndex.properties.publisher.description
De organisatie die de publicatie waartoe dit document hoort heeft gepubliceerd.

# components.schemas.DocumentIndex.properties.identifiers.items.description
Een kenmerk dat bij dit document hoort. Merk op dat meerdere documenten eenzelfde kenmerk kunnen hebben omdat er meer context nodig is om een document uniek te identificeren. Deze extra context wordt bewust niet geïndexeerd.

# components.schemas.DocumentIndex.properties.identifiers.description
De kenmerken die dit document identificeren.

# components.schemas.DocumentIndex.properties.creatiedatum.description
De datum waarop het document ontstaan is. Niet te verwarren met de registratiedatum - de creatiedatum valt typisch *voor* de registratiedatum.

# components.schemas.DocumentIndex.properties.gepubliceerdOp.description
Systeemdatum en -tijd wanneer het document gepubliceerd was in de GPP-Publicatiebank.

# components.schemas.DocumentIndex.properties.registratiedatum.description
Systeemdatum en -tijd wanneer het document geregistreed was in de GPP-Publicatiebank. Niet te verwarren met de creatiedatum van de publicatie, die typisch *voor* de registratiedatum valt.

# components.schemas.DocumentIndex.properties.laatstGewijzigdDatum.description
Systeemdatum en -tijd wanneer het document laatst gewijzigd is in de GPP-Publicatiebank.

# components.schemas.DocumentIndex.properties.downloadUrl.description
De URL waar het document gedownload kan worden om de inhoud te indexeren.

# components.schemas.DocumentIndex.properties.fileSize.description
De bestandsgrootte van het document op de harde schijf, in bytes.

# components.schemas.InformationCategoryBucket.properties.uuid.description
Het unieke ID die de informatiecategorie identificeert in de GPP-publicatiebank.

# components.schemas.InformationCategoryBucket.properties.count.description
Het aantal zoekresultaten de gelinkt zijn aan deze categorie.

# components.schemas.Publication.properties.publisher.description
De organisatie die de publicatie publiceert.

# components.schemas.Publication.properties.informatieCategorieen.description
De informatiecategorie verduidelijkt de soort informatie die in de publicatie voorkomt.

# components.schemas.Publication.properties.onderwerpen.description
Onderwerpen gaan over maatschappelijk relevante informatie die meerdere publicaties omvatten. Ze kunnen tientallen jaren relevant blijven en overstijgen de typische levensduur van een enkele publicatie.

# components.schemas.Publication.properties.identifiers.items.description
Een kenmerk dat bij deze publicatie hoort. Merk op dat meerdere publicaties eenzelfde kenmerk kunnen hebben omdat er meer context nodig is om een publicatie uniek te identificeren. Deze extra context wordt bewust niet geïndexeerd.

# components.schemas.Publication.properties.registratiedatum.description
Systeemdatum en -tijd wanneer de publicatie geregistreed was is in de GPP-Publicatiebank.

# components.schemas.Publication.properties.gepubliceerdOp.description
Systeemdatum en -tijd wanneer de publicatie gepubliceerd was is in de GPP-Publicatiebank.

# components.schemas.Publication.properties.laatstGewijzigdDatum.description
Systeemdatum en -tijd wanneer de publicatie laatst gewijzigd is in de GPP-Publicatiebank.

# components.schemas.Publication.properties.datumBeginGeldigheid.description
De datum waarop de rechten en plichten van de gerelateerde documenten in werking treden.

# components.schemas.Publication.properties.datumEindeGeldigheid.description
De datum waarop de rechten en plichten van de gerelateerde documenten (zijn) komen te vervallen.

# components.schemas.PublisherBucket.properties.uuid.description
Het unieke ID die de publisher identificeert in de GPP-publicatiebank.

# components.schemas.PublisherBucket.properties.count.description
Het aantal zoekresultaten gepubliceerd door deze organisatie.

# components.schemas.ResultTypeBucket.properties.naam.description
Geeft de type record/index aan die gevonden is.

* `publication` - Publicatie
* `document` - Document
* `topic` - Onderwerp

# components.schemas.ResultTypeBucket.properties.count.description
Het aantal zoekresultaten voor deze specifieke record type/index.

# components.schemas.ResultTypesEnum.description
* `publication` - Publicatie
* `document` - Document
* `topic` - Onderwerp

# components.schemas.Search.properties.query.description
Filter records op basis van de meegegeven zoektermen. De zoekquery wordt toegepast op gegevens in de volgende velden (met de prioriteit op basis van de volgorde hieronder):
- `identifiers`(kenmerken)
- `officieleTitel`
- `verkorteTitel`
- `omschrijving`
- `document content` **veld alleen aanwezig in Document*

Je kan dubbele quotes gebruiken voor het zoeken op exacte matches en `AND`/`OR` syntax voor complexere queries.

# components.schemas.Search.properties.page.description
Een paginanummer binnen de gepagineerde resultaatset.

# components.schemas.Search.properties.pageSize.description
De hoeveelheid resultaten die getoond worden per pagina.

# components.schemas.Search.properties.resultTypes.description
Geef aan welke soort zoekresultaten je wil terugkrijgen. Indien je deze parameter leeg- of weglaat, of een lege lijst opgeeft, dan krijg je alle soorten terug.

# components.schemas.Search.properties.registratiedatumVanaf.description
Filter resultaten die geregistreerd zijn op of na het opgegeven moment.

# components.schemas.Search.properties.registratiedatumTot.description
Filter resultaten die geregistreerd zijn voor het opgegeven moment.

# components.schemas.Search.properties.gepubliceerdOpVanaf.description
Filter resultaten die gepubliceerd zijn op of na de opgegeven waarde. **Opmerking**: dit veld filtert ook op de registratiedatum van `Onderwerpen`.

# components.schemas.Search.properties.gepubliceerdOpTot.description
Filter resultaten die gepubliceerd werden voor de opgegeven waarde. **Opmerking**: dit veld filtert ook op de registratiedatum van `Onderwerpen`.

# components.schemas.Search.properties.laatstGewijzigdDatumVanaf.description
Filter resultaten die laatst gewijzigd zijn op of na het opgegeven moment.

# components.schemas.Search.properties.laatstGewijzigdDatumTot.description
Filter resultaten die laatst gewijzigd zijn voor het opgegeven moment.

# components.schemas.Search.properties.creatiedatumVanaf.description
Filter documenten die gecreëerd waren op of na de gegeven datum.

# components.schemas.Search.properties.creatiedatumTotEnMet.description
Filter documenten die gecreëerd waren voor of op de gegeven datum.

# components.schemas.Search.properties.datumBeginGeldigheidVanaf.description
Filter resultaten waarvoor de rechten en plichten in werking traden op of na de opgegeven datum.

# components.schemas.Search.properties.datumBeginGeldigheidTot.description
Filter resultaten waarvoor de rechten en plichten in werking traden voor de opgegeven datum.

# components.schemas.Search.properties.datumEindeGeldigheidVanaf.description
Filter resultaten waarvoor de rechten en plichten kwamen te vervallen op of na het opgegeven moment.

# components.schemas.Search.properties.datumEindeGeldigheidTot.description
Filter resultaten waarvoor de rechten en plichten kwamen te vervallen voor het opgegeven moment.

# components.schemas.Search.properties.publishers.description
Filter resultaten gepubliceerd door (één van) de gegeven publishers `uuid`.

# components.schemas.Search.properties.informatieCategorieen.description
Filter resultaten gepubliceerd door (één van) de gegeven categorieën `uuid`.

# components.schemas.Search.properties.onderwerpen.description
Filter resultaten gepubliceerd door (één van) de gegeven onderwerpen `uuid`.

# components.schemas.SearchResultsShared.description
Polymorphic serializer base class.

Note that the discriminator field must exist at the same depth as the mapped
serializer fields for the OpenAPI introspection. See
https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/ for
more information. As such, it's not possible to define something like:

{
    "object_type": "foo",
    "polymorphic_context": {
        <foo-specific fields>
    }
}

without explicitly wrapping this in a parent serializer, i.e. -
``polymorphic_context`` can not be a PolymorphicSerializer itself, as it requires
access to the ``object_type`` in the parent scope.

# components.schemas.SortEnum.description
* `relevance` - Relevantie
* `chronological` - Chronologisch

# components.schemas.Topic.properties.registratiedatum.description
Systeemdatum en -tijd wanneer het onderwerp geregistreed was is in de GPP-Publicatiebank.

# components.schemas.Topic.properties.gepubliceerdOp.description
Kopie van de registratiedatum, t.b.v. een uniforme structuur van zoekresultaten.

# components.schemas.Topic.properties.laatstGewijzigdDatum.description
Systeemdatum en -tijd wanneer het onderwerp laatst gewijzigd is in de GPP-Publicatiebank.

# components.schemas.TopicBucket.properties.uuid.description
Het unieke ID die het onderwerp identificeert in de GPP-publicatiebank.

# components.schemas.TopicBucket.properties.count.description
Het aantal zoekresultaten de gelinkt zijn aan dit onderwerp.

# components.securitySchemes.tokenAuth.description
Token-based authentication with required prefix "Token"