@biblioteksentralen/bmdb-search 0.0.0-beta.69 → 0.0.0-beta.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,16 @@ interface paths {
15
15
  };
16
16
  /**
17
17
  * Search works
18
- * @description Endpoint for searching works.
18
+ * @description Search works. Returns `WorkSummary` records: work-level metadata plus a representative
19
+ * manifestation used for display.
20
+ *
21
+ * Combine a free-text `query` with filters and facets. Filters are AND'ed together.
22
+ * Default sort is relevance when `query` is set, otherwise publication date (newest first).
23
+ * use `/works/harvest` for larger result sets.
24
+ *
25
+ * Example:
26
+ *
27
+ * `/cordata/v1/global/works/search?query=bølgene&filter[literature_type]=skjønnlitteratur&facet=work_type,genre&size=10`
19
28
  *
20
29
  */
21
30
  get: operations["searchWorks"];
@@ -36,7 +45,9 @@ interface paths {
36
45
  };
37
46
  /**
38
47
  * Get works
39
- * @description Endpoint for getting works.
48
+ * @description Fetch full `Work` records by BMDB work ID. Each work includes its expressions and
49
+ * manifestations. Results are limited to the search profile's catalogues and digital
50
+ * services.
40
51
  *
41
52
  */
42
53
  get: operations["getWorks"];
@@ -57,8 +68,20 @@ interface paths {
57
68
  };
58
69
  /**
59
70
  * Harvest works
60
- * @description Endpoint for harvesting works. No pagination limit.
61
- * Start a harvest by making a request with timestamp in the `from` parameter. The response will include a `resumptionToken` if there are more records to fetch. Make a new request using the returned `resumptionToken` to fetch the next batch of records. Continue until you receive a response without a `resumptionToken`.
71
+ * @description Iterate through all works in the search profile, returning full `Work` records.
72
+ * There is no `page`/`size` limit.
73
+ *
74
+ * Start a harvest with `from` (ISO 8601 datetime, UTC). If more records remain, the
75
+ * response includes a `resumptionToken`. Repeat the request with that token until the
76
+ * response has no `resumptionToken`. `from` and `resumptionToken` cannot be combined.
77
+ *
78
+ * Example — start:
79
+ *
80
+ * `/cordata/v1/global/works/harvest?from=2024-01-01T00:00:00Z`
81
+ *
82
+ * Example — continue:
83
+ *
84
+ * `/cordata/v1/global/works/harvest?resumptionToken=<token from previous response>`
62
85
  *
63
86
  */
64
87
  get: operations["harvestWorks"];
@@ -79,8 +102,10 @@ interface paths {
79
102
  };
80
103
  /**
81
104
  * Harvest work IDs
82
- * @description Endpoint for harvesting works, returning their IDs only. No pagination limit.
83
- * Start a harvest by making a request with timestamp in the `from` parameter. The response will include a `resumptionToken` if there are more records to fetch. Make a new request using the returned `resumptionToken` to fetch the next batch of records. Continue until you receive a response without a `resumptionToken`.
105
+ * @description Same harvest protocol as `/works/harvest`, but each result is only the work ID.
106
+ *
107
+ * Start with `from`. Continue with `resumptionToken` until the response has none.
108
+ * `from` and `resumptionToken` cannot be combined.
84
109
  *
85
110
  */
86
111
  get: operations["harvestWorkIds"];
@@ -101,7 +126,11 @@ interface paths {
101
126
  };
102
127
  /**
103
128
  * Search agents
104
- * @description Endpoint for searching BMDB agents.
129
+ * @description Search persons, collective agents and artificial agents. Returns `AgentSummary` records.
130
+ *
131
+ * Filters are AND'ed together. All filters except `catalogue` accept comma-separated
132
+ * values that are OR'ed together. Default sort is relevance when `query` is set,
133
+ * otherwise last update (newest first).
105
134
  *
106
135
  */
107
136
  get: operations["searchAgents"];
@@ -122,7 +151,8 @@ interface paths {
122
151
  };
123
152
  /**
124
153
  * Get agents
125
- * @description Endpoint for getting BMDB agents.
154
+ * @description Fetch full agent records (`Person`, `CollectiveAgent` or `ArtificialAgent`) by BMDB
155
+ * agent ID.
126
156
  *
127
157
  */
128
158
  get: operations["getAgents"];
@@ -143,7 +173,11 @@ interface paths {
143
173
  };
144
174
  /**
145
175
  * Search collections
146
- * @description Endpoint for searching BMDB collections.
176
+ * @description Search collections (series and similar groupings). Returns `CollectionSummary` records.
177
+ *
178
+ * Filters are AND'ed together. All filters except `catalogue` accept comma-separated
179
+ * values that are OR'ed together. Default sort is relevance when `query` is set,
180
+ * otherwise last update (newest first).
147
181
  *
148
182
  */
149
183
  get: operations["searchCollections"];
@@ -164,7 +198,8 @@ interface paths {
164
198
  };
165
199
  /**
166
200
  * Get collections
167
- * @description Endpoint for getting BMDB collections.
201
+ * @description Fetch full `CollectionWork` records by BMDB collection ID, including collection
202
+ * expressions.
168
203
  *
169
204
  */
170
205
  get: operations["getCollections"];
@@ -185,7 +220,17 @@ interface paths {
185
220
  };
186
221
  /**
187
222
  * Search subjects
188
- * @description Endpoint for searching BMDB subjects.
223
+ * @description Search subjects. Returns `SubjectSummary` records: the subject name plus
224
+ * what it is about (concept, place, event, agent, work or collection).
225
+ *
226
+ * Combine a free-text `query` with filters and facets. Filters are AND'ed together.
227
+ * All filters except `catalogue` accept comma-separated values that are OR'ed together.
228
+ * Default sort is relevance when `query` is set, otherwise last update (newest first).
229
+ *
230
+ *
231
+ * Example:
232
+ *
233
+ * `/cordata/v1/global/subjects/search?query=hunder&filter[type]=concept&facet=catalogue&size=10`
189
234
  *
190
235
  */
191
236
  get: operations["searchSubjects"];
@@ -206,7 +251,8 @@ interface paths {
206
251
  };
207
252
  /**
208
253
  * Get subjects
209
- * @description Endpoint for getting BMDB subjects.
254
+ * @description Fetch full `Subject` records by BMDB subject ID. Each subject is a concept, place,
255
+ * event, person, collective agent, work or collection.
210
256
  *
211
257
  */
212
258
  get: operations["getSubjects"];
@@ -227,7 +273,27 @@ interface paths {
227
273
  };
228
274
  /**
229
275
  * Get catalogue records
230
- * @description Endpoint for getting catalogue records expressed using Cordata entities. When using search profile `global`, the IDs should be BMDB manifestation ID's, otherwise local library system IDs.
276
+ * @description Fetch catalogue records expressed as Cordata work, expression and manifestation.
277
+ *
278
+ * For a library search profile, `ids` are local library-system record IDs. Preferred
279
+ * form is `{systemPrefix}:{catalogueId}:{localRecordId}` (for example `b:tonsberg:123`,
280
+ * where `b` is Bibliofil, `c` Cicero and `q` Quria). A legacy `{catalogueId}:{localRecordId}`
281
+ * form is also accepted. The `id` in the response uses the same form as the request.
282
+ *
283
+ * With search profile `global`, `ids` are BMDB manifestation IDs.
284
+ *
285
+ * An aggregate manifestation (several works in one publication) returns the work it
286
+ * embodies (1-1) on `work` and the works it contains (1-N) on `containedWorks`. For a
287
+ * short-story collection, the collection may be the embodied work while the individual
288
+ * stories appear in `containedWorks`.
289
+ *
290
+ * Example — library profile (local record IDs):
291
+ *
292
+ * `/cordata/v1/tonsberg/catalogue-records?ids=b:tonsberg:123,b:tonsberg:456`
293
+ *
294
+ * Example — global profile (manifestation IDs):
295
+ *
296
+ * `/cordata/v1/global/catalogue-records?ids=3fa85f64-5717-4562-b3fc-2c963f66afa6`
231
297
  *
232
298
  */
233
299
  get: operations["getCatalogueRecords"];
@@ -248,7 +314,17 @@ interface paths {
248
314
  };
249
315
  /**
250
316
  * Search suggestions
251
- * @description Endpoint for searching suggestions.
317
+ * @description Search-as-you-type suggestions. Returns compact `Suggestion` records for works, agents,
318
+ * collections and subjects that match the query prefix.
319
+ *
320
+ * `query` must be at least 3 characters. Shorter queries return no results and a
321
+ * `query_too_short` warning. Advanced query syntax is not supported; if detected,
322
+ * regular suggestions are still returned and `warnings` includes
323
+ * `advanced_search_detected`.
324
+ *
325
+ * Example:
326
+ *
327
+ * `/cordata/v1/global/suggestions/search?query=synt&filter[type]=work,subject&size=10`
252
328
  *
253
329
  */
254
330
  get: operations["searchSuggestions"];
@@ -269,7 +345,14 @@ interface paths {
269
345
  };
270
346
  /**
271
347
  * Get search profiles
272
- * @description Endpoint for search profiles. Under construction – we might move this outside of the `/cordata` path.
348
+ * @description List search profiles. Omit `ids` to return all profiles, or pass a comma-separated
349
+ * list of profile IDs.
350
+ *
351
+ * Each profile names the library catalogues and digital services (Filmoteket, Cineast)
352
+ * that scope the other Cordata endpoints. The `global` profile searches across all
353
+ * libraries.
354
+ *
355
+ * This route sits under `/cordata/v1` today; it may later move outside that prefix.
273
356
  *
274
357
  */
275
358
  get: operations["getSearchProfiles"];
@@ -285,37 +368,65 @@ interface paths {
285
368
  interface components {
286
369
  schemas: {
287
370
  WorkSearchFilterType: {
371
+ /** @description Work type, for example literary work or music work. */
288
372
  work_type?: string;
373
+ /** @description Expression type, for example book, audiobook or film. */
289
374
  expression_type?: string;
375
+ /** @description Manifestation medium, for example print or e-book. */
290
376
  manifestation_medium?: string;
377
+ /** @description Creator (author, composer, director, and similar). */
291
378
  creator?: string;
379
+ /** @description Collection or series the work belongs to. */
292
380
  collection?: string;
381
+ /** @description Subject. */
293
382
  subject?: string;
383
+ /** @description Language of an expression of the work. */
294
384
  language?: string;
385
+ /** @description Language of the original or representative expression. */
295
386
  original_language?: string;
387
+ /** @description Form term (a subtype of genre in Cordata). */
296
388
  form?: string;
389
+ /** @description Genre. */
297
390
  genre?: string;
391
+ /** @description Age limit or rating (for example PEGI or NMA). */
298
392
  age_limit?: string;
393
+ /** @description Recommended age group assigned by Biblioteksentralen. */
299
394
  age_group?: string;
395
+ /** @description Numeric age span. As a filter, use `from:to` (either bound may be omitted), for example `6:12` or `:16`. */
300
396
  age_range?: string;
397
+ /** @description GREP curriculum subject from Udir (code in the GREP database). */
301
398
  grep_subject?: string;
399
+ /** @description Whether a manifestation is approved by Kulturrådet (Arts Council Norway) for library distribution (Innkjøpsordningane for litteratur). */
302
400
  kulturfond?: boolean;
401
+ /** @description Literature type, for example fiction or non-fiction. */
303
402
  literature_type?: string;
403
+ /** @description Library catalogue ID. */
304
404
  catalogue?: string;
405
+ /** @description Digital service, for example Filmoteket or Cineast. */
305
406
  digital_service?: string;
407
+ /** @description Whether the work is a short work such as a short story. */
306
408
  is_short_work?: boolean;
409
+ /** @description Musical instrumentation / scoring. */
307
410
  instrumentation?: string;
308
- /** @description Any identifier */
411
+ /** @description Any known identifier for the work, expression or manifestation (BMDB ID, Bibbi, ISBN, and others). */
309
412
  identifier?: string;
413
+ /** @description BMDB work ID. */
310
414
  id?: string;
415
+ /** @description BMDB work ID (same as `id`). */
311
416
  work_id?: string;
417
+ /** @description BMDB expression ID. */
312
418
  expression_id?: string;
419
+ /** @description BMDB manifestation ID. */
313
420
  manifestation_id?: string;
421
+ /** @description BMDB ID of an aggregate manifestation that contains this work. */
314
422
  aggregate_manifestation_id?: string;
423
+ /** @description Library catalogue record ID, for example `b:tonsberg:123`. */
315
424
  catalogue_record?: string;
316
- /** @description Title of work, expression or manifestation */
425
+ /** @description Title of the work, expression or manifestation. */
317
426
  title?: string;
427
+ /** @description When true, exclude short works such as short stories. */
318
428
  is_not_short_work?: boolean;
429
+ /** @description When true, only works that themselves aggregate other works. */
319
430
  is_aggregating_work?: boolean;
320
431
  /** @description Entities generated from catalogue records are unstable */
321
432
  is_unstable?: boolean;
@@ -371,19 +482,43 @@ interface components {
371
482
  /**
372
483
  * @description How the search results should be sorted. Available options:
373
484
  *
374
- * - `relevance.desc`: Relevance, i.e how well the documents match the query
485
+ * - `relevance.desc`: How well the results match the query (default when `query` is set)
375
486
  * - `updateTime.desc`: Time of last change (newest first)
376
487
  * - `updateTime.asc`: Time of last change (oldest first)
377
- * - `publicationDate.desc`: Publication date (newest first)
488
+ * - `publicationDate.desc`: Publication date (newest first; default when `query` is omitted)
378
489
  * - `publicationDate.asc`: Publication date (oldest first)
379
490
  * - `firstPublicationDate.desc`: First publication date of the work (newest first)
380
- * - `firstPublicationDate.asc`: First publication date of the work (olderst first)
491
+ * - `firstPublicationDate.asc`: First publication date of the work (oldest first)
381
492
  * @enum {string}
382
493
  */
383
494
  WorkSearchSortType: "relevance.desc" | "updateTime.desc" | "updateTime.asc" | "publicationDate.desc" | "publicationDate.asc" | "firstPublicationDate.desc" | "firstPublicationDate.asc";
384
- /** @enum {string} */
495
+ /**
496
+ * @description Facet type to include in the response. Available options:
497
+ *
498
+ * - `work_type`: Work type, for example literary work or music work.
499
+ * - `expression_type`: Expression type, for example book, audiobook or film.
500
+ * - `manifestation_medium`: Manifestation medium, for example print or e-book.
501
+ * - `creator`: Creator (author, composer, director, and similar).
502
+ * - `collection`: Collection or series the work belongs to.
503
+ * - `subject`: Subject.
504
+ * - `language`: Language of an expression of the work.
505
+ * - `original_language`: Language of the original or representative expression.
506
+ * - `form`: Form term (a subtype of genre in Cordata).
507
+ * - `genre`: Genre.
508
+ * - `age_limit`: Age limit or rating (for example PEGI or NMA).
509
+ * - `age_group`: Recommended age group assigned by Biblioteksentralen.
510
+ * - `age_range`: Numeric age span. As a filter, use `from:to` (either bound may be omitted), for example `6:12` or `:16`.
511
+ * - `grep_subject`: GREP curriculum subject from Udir (code in the GREP database).
512
+ * - `kulturfond`: Whether a manifestation is approved by Kulturrådet (Arts Council Norway) for library distribution (Innkjøpsordningane for litteratur).
513
+ * - `literature_type`: Literature type, for example fiction or non-fiction.
514
+ * - `catalogue`: Library catalogue ID.
515
+ * - `digital_service`: Digital service, for example Filmoteket or Cineast.
516
+ * - `is_short_work`: Whether the work is a short work such as a short story.
517
+ * - `instrumentation`: Musical instrumentation / scoring.
518
+ * @enum {string}
519
+ */
385
520
  WorkSearchFacetType: "work_type" | "expression_type" | "manifestation_medium" | "creator" | "collection" | "subject" | "language" | "original_language" | "form" | "genre" | "age_limit" | "age_group" | "age_range" | "grep_subject" | "kulturfond" | "literature_type" | "catalogue" | "digital_service" | "is_short_work" | "instrumentation";
386
- /** @description The total number of results in the whole search result. */
521
+ /** @description Total number of hits matching the query and filters, not only the current page. */
387
522
  total: number;
388
523
  /** @description Unique identifier for the entity. */
389
524
  Id: string;
@@ -403,6 +538,7 @@ interface components {
403
538
  Language: {
404
539
  /** @description Three-letter language code from ISO 639-2 (Bibliographic) */
405
540
  code: components["schemas"]["CordataEnumLanguageCode"];
541
+ /** @description Language name. */
406
542
  name: string;
407
543
  };
408
544
  TitleSummary: {
@@ -429,19 +565,22 @@ interface components {
429
565
  * If a record does not match, it is often due to incomplete metadata in the catalogue record or that the resource has not been previously registered. We are continuously working to improve the matching algorithms.
430
566
  * */
431
567
  IsUnstable: boolean;
432
- /** @description A Work is defined as "The intellectual or artistic content of a distinct creation" (Library Reference Model)
568
+ /** @description A Work is defined as "The intellectual or artistic content of a distinct creation" (from the Library Reference Model).
433
569
  * It is the top level and most abstract entity in the WEMI stack (Work, Expression, Manifestation, Item), and serves to cluster all expressions of what one could consider "the same book" (or e.g. same play, film, game, etc.) in different formats and languages.
434
570
  * While the work is an abstract entity, convention is to assign it a title, language and year in order to aid with identifying the work. */
435
571
  BaseWork: {
436
572
  identifiers: components["schemas"]["WorkIdentifiers"];
437
573
  /** @description The year in which the representative expression of the work was published or released. */
438
574
  workYear?: number;
575
+ /** @description Whether this is a short work such as a short story, typically published as part of a containing manifestation rather than on its own.
576
+ * */
439
577
  isShortWork: boolean;
578
+ /** @description Whether this work itself aggregates other works. */
440
579
  isAggregatingWork?: boolean;
441
580
  isUnstable: components["schemas"]["IsUnstable"];
442
581
  };
443
582
  /** @enum {string} */
444
- CordataEnumWorkTypeCode: "literary" | "moving_image" | "music" | "interactive" | "cartographic";
583
+ CordataEnumWorkTypeCode: "literary" | "moving_image" | "music" | "interactive" | "tabletop_game" | "cartographic";
445
584
  CordataEnumWorkTypeTranslated: {
446
585
  code: components["schemas"]["CordataEnumWorkTypeCode"];
447
586
  label: string;
@@ -566,7 +705,7 @@ interface components {
566
705
  bokbasenId?: string;
567
706
  /** @description International Standard Name Identifier. Format: 16 digits without hyphens. */
568
707
  isni?: string;
569
- /** @description Identifier from {@link https://bibliotekutvikling.no/kunnskapsorganisering/vokabularer-utkast/felles-autoritetsregister-for-personer-og-korporasjoner/ Norwegian Authority File: Persons and Corporate Bodies } , */
708
+ /** @description Identifier from the Norwegian Authority File for Persons and Corporate Bodies (NORAF). */
570
709
  norafId?: string;
571
710
  };
572
711
  AgentSummaryBase: {
@@ -576,7 +715,8 @@ interface components {
576
715
  collectiveAgentType?: components["schemas"]["CordataEnumCollectiveAgentTypeTranslated"];
577
716
  id: components["schemas"]["Id"];
578
717
  identifiers: components["schemas"]["AgentIdentifiers"];
579
- /** @description TODO */
718
+ /** @description Preferred display name of the agent in direct order (for a person, typically "Firstname Lastname"). See `catalogueName` for the inverted sorting form.
719
+ * */
580
720
  name: string;
581
721
  /** @description The moniker written in sorting order according to bibliographic convention, typically inverted as "Lastname, Firstname". */
582
722
  catalogueName?: string;
@@ -590,7 +730,10 @@ interface components {
590
730
  death?: string;
591
731
  isUnstable: components["schemas"]["IsUnstable"];
592
732
  };
593
- /** WorkSummaryAgent */
733
+ /**
734
+ * WorkSummaryAgent
735
+ * @description Compact agent attached to a work in search results.
736
+ */
594
737
  WorkSummaryAgent: {
595
738
  /** @constant */
596
739
  type: "WorkSummaryAgent";
@@ -601,7 +744,7 @@ interface components {
601
744
  code: components["schemas"]["CordataEnumContributorRoleCode"];
602
745
  label: string;
603
746
  };
604
- /** @description A Contributor object links a {@link Work } , {@link Expression } , {@link Manifestation } , {@link CollectionExpression } or {@link CollectionWork } to an {@link Agent } which has contributed to the entity and the Role the Agent played in the creation of the entity. */
747
+ /** @description A Contributor object links a Work, Expression, Manifestation, CollectionExpression or CollectionWork to an Agent which has contributed to the entity and the Role the Agent played in the creation of the entity. */
605
748
  WorkSummaryContributor: {
606
749
  /** @description The Agent (Person, Collective Agent or Artificial Agent) which has contributed to the entity the Contributor object is attached to. */
607
750
  agent: components["schemas"]["WorkSummaryAgent"];
@@ -622,8 +765,6 @@ interface components {
622
765
  * @description A Collection is a set of entities - manifestations or works - that share certain features.
623
766
  *
624
767
  * The collection can be explicitly named in the source material, such as the series "SF Masterworks" which is a collection of acclaimed SF novels published by Gollancz, or constructed from a set of features that the collected entities have in common, such as "The Lovecraft Mythos" for works that use creatures and features from H.P. Lovecraft's fictional universe.
625
- *
626
- * Later iterations will add variant titles, summary, genres, subjects and other metadata elements as optional fields to this entity.
627
768
  */
628
769
  WorkSummaryCollection: {
629
770
  /** @constant */
@@ -635,13 +776,17 @@ interface components {
635
776
  /** @description Identifier assigned by Biblioteksentralen for authority records. Unique for all authorities independent of type. */
636
777
  bibbiAuthorityId?: string;
637
778
  };
779
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
780
+ * */
638
781
  collectionType: components["schemas"]["CordataEnumCollectionTypeTranslated"];
639
782
  /** @description Preferred title of Collection work.
640
783
  *
641
- * See {@link Title } for individual components of title. */
784
+ * See Title for individual components of title. */
642
785
  preferredTitle: components["schemas"]["TitleSummary"];
643
786
  isUnstable: components["schemas"]["IsUnstable"];
644
787
  };
788
+ /** @description Collection membership of a work in search results, including optional series numbering.
789
+ * */
645
790
  WorkSummaryCollectionEntry: {
646
791
  collection: components["schemas"]["WorkSummaryCollection"];
647
792
  /** @description The position of this entity in the collection/series.
@@ -654,21 +799,40 @@ interface components {
654
799
  * - a decimal number for cases where a single logical part has been split into multiple physical parts (e.g. "1.2" or "2022.1"). */
655
800
  numberInSeries?: string;
656
801
  };
657
- /** WorkSummary */
802
+ Kulturfond: {
803
+ /** @description True if the manifestation is approved for library distribution through Innkjøpsordningane for litteratur.
804
+ * */
805
+ status: boolean;
806
+ /** @description Kulturfond scheme code, when known. */
807
+ program?: string;
808
+ };
809
+ /**
810
+ * WorkSummary
811
+ * @description Compact work record returned by work search. Includes work-level metadata, a representative manifestation for display, and the formats available. Fetch `GET /{searchProfile}/works` for the full work with all expressions and manifestations.
812
+ *
813
+ */
658
814
  WorkSummary: {
659
815
  /** @constant */
660
816
  type: "WorkSummary";
661
817
  /** @constant */
662
818
  entityType: "work";
663
819
  id: components["schemas"]["Id"];
664
- /** @description TODO */
820
+ /** @description Representative manifestation chosen for display in search results.
821
+ * */
665
822
  representation: {
823
+ /** @description BMDB ID of the representative manifestation. */
666
824
  manifestationId: components["schemas"]["Id"];
667
825
  /** @description ID assigned to all publications catalogued by Biblioteksentralen. */
668
826
  bibbiId?: string;
827
+ /** @description Title taken from the representative expression or manifestation. */
669
828
  title: components["schemas"]["TitleSummary"];
829
+ /** @description URL of the cover image of the representative manifestation, if available. */
670
830
  coverImage?: string;
831
+ /** @description Catalogue record IDs for the representative manifestation, for example `b:tonsberg:123`.
832
+ * */
671
833
  catalogueRecords: string[];
834
+ /** @description Digital-service record IDs for the representative manifestation, for example `filmoteket:123`.
835
+ * */
672
836
  digitalServiceRecords: string[];
673
837
  };
674
838
  } & components["schemas"]["BaseWork"] & {
@@ -682,10 +846,11 @@ interface components {
682
846
  *
683
847
  * For works where the first publication has two main titles separated by "or" (subsequent main title), only the first title is registered as the preferred title for the work, e.g. *"The hobbit"*, not *"The hobbit, or, There and back again"*.
684
848
  *
685
- * Classical music works without titles in the traditional sense will instead get a generic uniform title, synthesized from key information about the work, such as "Symphonies, no. 6, op. 6, F major". In these cases, the title is of type {@link UniformTitleMusic } .
849
+ * Classical music works without titles in the traditional sense will instead get a generic uniform title, synthesized from key information about the work, such as "Symphonies, no. 6, op. 6, F major". In these cases, the title is of type UniformTitleMusic.
686
850
  * */
687
851
  workTitle: components["schemas"]["TitleSummary"] | components["schemas"]["UniformTitleMusic"];
688
- /** @description TODO */
852
+ /** @description Expression types and manifestation mediums available for this work. Used to show which formats a library can offer (for example book/print and audiobook). `platforms` is set for video games.
853
+ * */
689
854
  formats: {
690
855
  expressionType: components["schemas"]["CordataEnumExpressionTypeTranslated"];
691
856
  manifestationMediums: components["schemas"]["CordataEnumManifestationMediumTranslated"][];
@@ -693,8 +858,10 @@ interface components {
693
858
  }[];
694
859
  literatureType?: components["schemas"]["LiteratureTypeTranslated"];
695
860
  illustrations?: components["schemas"]["CordataEnumWorkIllustrationsOptionTranslated"];
696
- /** @description TODO (languages from all expressions) */
861
+ /** @description Languages of the work's expressions. Each inner array is the language set of one expression.
862
+ * */
697
863
  languages: components["schemas"]["Language"][][];
864
+ /** @description Form terms for the work (genre entries with `isForm: true`). */
698
865
  forms?: {
699
866
  /** @constant */
700
867
  type: "WorkSummaryForm";
@@ -704,6 +871,7 @@ interface components {
704
871
  label: string;
705
872
  isUnstable: components["schemas"]["IsUnstable"];
706
873
  }[];
874
+ /** @description Genre terms for the work (excluding form terms). */
707
875
  genres?: {
708
876
  /** @constant */
709
877
  type: "WorkSummaryGenre";
@@ -713,6 +881,7 @@ interface components {
713
881
  label: string;
714
882
  isUnstable: components["schemas"]["IsUnstable"];
715
883
  }[];
884
+ /** @description Subjects describing what the work is about. */
716
885
  subjects?: {
717
886
  /** @constant */
718
887
  type: "WorkSummarySubject";
@@ -729,15 +898,16 @@ interface components {
729
898
  nbVokUri?: string;
730
899
  };
731
900
  })[];
732
- /** @description List of contributors to the *work* in the form of * {@link Agent agents } * (persons or organizations) and their * {@link Role roles } * in the creation of the work.
901
+ /** @description List of contributors to the *work* in the form of *agents* (persons or organizations) and their *roles* in the creation of the work.
733
902
  *
734
903
  * Work contributors include authors for books, editors for edited works, composers for music, directors and screenwriters for films, etc., but not contributors that played a role in the creation of a specific expression (e.g. translators, illustrators, etc.) or manifestation (e.g. illustrators, cover designers, etc.). */
735
904
  contributors: components["schemas"]["WorkSummaryContributor"][];
905
+ /** @description Collections (typically series) the representative expression belongs to. Publisher-assigned manifestation series are not included.
906
+ * */
736
907
  collections?: components["schemas"]["WorkSummaryCollectionEntry"][];
737
- kulturfond?: {
738
- status: boolean;
739
- program?: string;
740
- };
908
+ /** @description Whether any manifestation of the work has been approved by Arts Council Norway (Kulturrådet) for library distribution through Innkjøpsordningane for litteratur.
909
+ * */
910
+ kulturfond?: components["schemas"]["Kulturfond"];
741
911
  };
742
912
  /** @description If this is false, we haven't reached the end of the search result yet, if it's false we have, and if it's missing or null we don't know. */
743
913
  endOfResults: boolean;
@@ -746,7 +916,7 @@ interface components {
746
916
  value: string;
747
917
  /** @description A displayable (human readable) representation of facet term name. */
748
918
  name: string;
749
- /** @description The number of occurrences in the search result, based on works. */
919
+ /** @description The number of matching hits in the current search result for this term. */
750
920
  occurrences?: number;
751
921
  };
752
922
  WorkFacet: {
@@ -756,17 +926,29 @@ interface components {
756
926
  terms: components["schemas"]["FacetTerm"][];
757
927
  };
758
928
  /**
759
- * @description Indicates what kind of search was performed, based on parsed input query.
929
+ * @description Kind of search that was performed after parsing `query`.
930
+ *
931
+ * - `empty` — no query string.
932
+ * - `standard` — ordinary free-text search.
933
+ * - `phrase` — quoted phrase search.
934
+ * - `advanced` — structured query syntax.
760
935
  * @enum {string}
761
936
  */
762
937
  queryType: "empty" | "standard" | "phrase" | "advanced";
938
+ /** @description Parsing error from an advanced search query. When these occur, the request is treated as a standard search.
939
+ * */
763
940
  AdvancedQueryError: {
764
- /** @enum {string} */
941
+ /**
942
+ * @description Machine-readable error code.
943
+ * @enum {string}
944
+ */
765
945
  code: "field_unknown" | "field_unspecified" | "binary_operator_invalid" | "query_invalid";
946
+ /** @description Human-readable explanation of the parsing problem. */
766
947
  message: string;
767
948
  };
768
949
  /** @description Parsing errors from advanced query. When they occur, the request is treated as a standard search. */
769
950
  advancedQueryErrors: components["schemas"]["AdvancedQueryError"][];
951
+ /** @description Paginated work search result. Each hit is a `WorkSummary`. */
770
952
  SearchWorks200Response: {
771
953
  total?: components["schemas"]["total"];
772
954
  results: {
@@ -880,6 +1062,7 @@ interface components {
880
1062
  bibbiAuthorityId?: string;
881
1063
  };
882
1064
  name: components["schemas"]["LanguageMap"];
1065
+ /** @description Clarifying addition for names that are ambiguous, for example "ASP (programming language)" or "Balloons (aircraft)". Only registered for ambiguous headings and should thus always be displayed. Convention is to display the specification in parentheses directly after the name — "Balloons (aircraft)". */
883
1066
  specification?: string;
884
1067
  alternativeNames: components["schemas"]["LanguageMapList"];
885
1068
  definition?: string;
@@ -955,7 +1138,7 @@ interface components {
955
1138
  };
956
1139
  /**
957
1140
  * CollectiveAgent
958
- * @description A Collective Agent is defined as "A gathering or organization of persons bearing a particular name and capable of acting as a unit" {@link https://www.iflastandards.info/lrm/lrmer#E8 Library Reference Model }
1141
+ * @description A Collective Agent is defined as "A gathering or organization of persons bearing a particular name and capable of acting as a unit" (from the Library Reference Model).
959
1142
  *
960
1143
  * Examples of Collective Agents are corporations, musical or artist groups, governments, families and other organizations. A group is considered a Collective Agent if it is organized in such a way that its members can produce or approve joint statements or creations, such as when a corporation approves a report, a music group releases an album, or a government ratifies a law.
961
1144
  *
@@ -974,13 +1157,17 @@ interface components {
974
1157
  name: components["schemas"]["LanguageMap"];
975
1158
  /** @description Variant spellings and non-preferred names, e.g. "Aha" for "A-ha" (music group), or "Danish National Symphony Orchestra" for "DR SymfoniOrkesteret". */
976
1159
  alternativeNames: components["schemas"]["LanguageMapList"];
977
- /** @description A {@link Nationality } associated with the Collective Agent. Currently only in use for collectiveAgentType "Family". */
1160
+ /** @description A Nationality associated with the Collective Agent. Currently only in use for collectiveAgentType "Family". */
978
1161
  nationality: components["schemas"]["Nationality"][];
979
1162
  /** @description Internal note on the entity. Used for identifying and differentiating entities with similar names. */
980
1163
  scopeNote?: string;
981
1164
  isUnstable: components["schemas"]["IsUnstable"];
982
1165
  };
983
- /** ArtificialAgent */
1166
+ /**
1167
+ * ArtificialAgent
1168
+ * @description An Artificial Agent is an agent that is not a person or a collective of persons, for example a generative AI system credited as a contributor.
1169
+ *
1170
+ */
984
1171
  ArtificialAgent: {
985
1172
  /** @constant */
986
1173
  type: "ArtificialAgent";
@@ -1009,7 +1196,7 @@ interface components {
1009
1196
  /** @description A Role is the function that an Agent (Person or Collective Agent) plays in the process of producing a Work, Expression or Manifestation. */
1010
1197
  Role: components["schemas"]["CordataEnumContributorRole"] & {
1011
1198
  identifiers: {
1012
- /** @description The closest equivalent from the {@link https://www.loc.gov/marc/relators/relaterm.html MARC 21 Code list for relators } . */
1199
+ /** @description The closest equivalent from the MARC 21 Code list for relators. */
1013
1200
  marc21Code?: string;
1014
1201
  /** @description The closest equivalent for the role in the (deprecated) NORMARC list of relators. Undefined for roles that don't have a close NORMARC equivalent. */
1015
1202
  normarcCode?: string;
@@ -1017,7 +1204,7 @@ interface components {
1017
1204
  rdaRelator?: string;
1018
1205
  };
1019
1206
  };
1020
- /** @description A Contributor object links a {@link Work } , {@link Expression } , {@link Manifestation } , {@link CollectionExpression } or {@link CollectionWork } to an {@link Agent } which has contributed to the entity and the Role the Agent played in the creation of the entity. */
1207
+ /** @description A Contributor object links a Work, Expression, Manifestation, CollectionExpression or CollectionWork to an Agent which has contributed to the entity and the Role the Agent played in the creation of the entity. */
1021
1208
  Contributor: {
1022
1209
  /** @description The Agent (Person, Collective Agent or Artificial Agent) which has contributed to the entity the Contributor object is attached to. */
1023
1210
  agent: components["schemas"]["Agent"];
@@ -1042,9 +1229,9 @@ interface components {
1042
1229
  };
1043
1230
  /** @description A recommended age group for the audience of a work.
1044
1231
  *
1045
- * For age limits and ratings for games and audiovisual material, see {@link ageRating } .
1232
+ * For age limits and ratings for games and audiovisual material, see AgeLimit.
1046
1233
  *
1047
- * The age group vocabulary was developed by Biblioteksentralen and later incorporated into the Norwegian National Library's {@link https://www.nb.no/nbvok/tg/nb/ Nortarget vocabulary } */
1234
+ * The age group vocabulary was developed by Biblioteksentralen and later incorporated into the Norwegian National Library's Nortarget vocabulary. */
1048
1235
  AgeGroup: components["schemas"]["CordataEnumAgeGroup"] & {
1049
1236
  /** @description Map of other identifiers for the entity */
1050
1237
  identifiers: {
@@ -1060,7 +1247,7 @@ interface components {
1060
1247
  };
1061
1248
  };
1062
1249
  /** @enum {string} */
1063
- CordataEnumAgeLimitCode: "nmaa" | "nma6" | "nma9" | "nma12" | "nma15" | "nma18" | "pegi3" | "pegi7" | "pegi12" | "pegi16" | "pegi18";
1250
+ CordataEnumAgeLimitCode: "nmaa" | "nma6" | "nma9" | "nma12" | "nma15" | "nma18" | "pegi3" | "pegi7" | "pegi12" | "pegi16" | "pegi18" | "ttg4" | "ttg5" | "ttg6" | "ttg7" | "ttg8" | "ttg9" | "ttg10" | "ttg12" | "ttg14" | "ttg16" | "ttg18";
1064
1251
  CordataEnumAgeLimit: {
1065
1252
  code: components["schemas"]["CordataEnumAgeLimitCode"];
1066
1253
  label: {
@@ -1068,16 +1255,18 @@ interface components {
1068
1255
  nn: string;
1069
1256
  };
1070
1257
  };
1258
+ /** @description Age limit or rating for games and audiovisual material, from PEGI or the Norwegian Media Authority (NMA). For recommended reading/interest age groups, see AgeGroup.
1259
+ * */
1071
1260
  AgeLimit: components["schemas"]["CordataEnumAgeLimit"] & {
1072
1261
  /** @enum {string} */
1073
- type: "PegiAgeLimit" | "NmaAgeLimit";
1262
+ type: "PegiAgeLimit" | "NmaAgeLimit" | "TabletopGameAgeLimit";
1074
1263
  /** @description Age suitability in years. A value of 0 years indicates suitable for everyone. */
1075
1264
  years: number;
1076
1265
  /** @description Map of other identifiers for the entity */
1077
1266
  identifiers: {
1078
1267
  /** @description URI of the PEGI age limit from https://www.nb.no/nbvok/pegi or NMA age limit from https://www.nb.no/nbvok/nma
1079
1268
  * */
1080
- uri: string;
1269
+ uri?: string;
1081
1270
  };
1082
1271
  };
1083
1272
  SubjectBase: {
@@ -1091,7 +1280,8 @@ interface components {
1091
1280
  /** @enum {string} */
1092
1281
  CordataEnumConceptTypeCode: "regular_concept" | "individual_concept" | "help_term" | "genre";
1093
1282
  /** @description Concepts are one of the building blocks that make up Subjects.
1094
- * Unlike SKOS concepts, which cover anything a work can be about, Cordata Concepts are limited to concepts that do not fall under one of the more narrow categories Person, Collective Agent, Place, Genre, Work, or Individual Concept. */
1283
+ * Unlike SKOS concepts, which cover anything a work can be about, Cordata Concepts are limited to concepts that do not fall under one of the more narrow categories Person, Collective Agent, Place, Genre, Work, or Individual Concept.
1284
+ * When a concept name is ambiguous, a clarifying specification is shown in parentheses after the name, for example "Balloons (aircraft)". */
1095
1285
  SubjectTypeConcept: components["schemas"]["SubjectBase"] & {
1096
1286
  /** @constant */
1097
1287
  type: "SubjectTypeConcept";
@@ -1133,7 +1323,7 @@ interface components {
1133
1323
  /** @description Map of identifiers for matching records in external systems. */
1134
1324
  identifiers: components["schemas"]["AgentIdentifiers"];
1135
1325
  };
1136
- /** @description A Collective Agent is defined as "A gathering or organization of persons bearing a particular name and capable of acting as a unit" {@link https://www.iflastandards.info/lrm/lrmer#E8 Library Reference Model }
1326
+ /** @description A Collective Agent is defined as "A gathering or organization of persons bearing a particular name and capable of acting as a unit" (from the Library Reference Model).
1137
1327
  *
1138
1328
  * Examples of Collective Agents are corporations, musical or artist groups, governments, families and other organizations. A group is considered a Collective Agent if it is organized in such a way that its members can produce or approve joint statements or creations, such as when a corporation approves a report, a music group releases an album, or a government ratifies a law.
1139
1329
  *
@@ -1146,7 +1336,7 @@ interface components {
1146
1336
  collectiveAgentType: components["schemas"]["CordataEnumCollectiveAgentTypeCode"];
1147
1337
  /** @description Map of identifiers for matching records in external systems. */
1148
1338
  identifiers: components["schemas"]["AgentIdentifiers"];
1149
- /** @description A {@link Nationality } associated with the Collective Agent. Currently only in use for collectiveAgentType "Family". */
1339
+ /** @description A Nationality associated with the Collective Agent. Currently only in use for collectiveAgentType "Family". */
1150
1340
  nationality: components["schemas"]["Nationality"][];
1151
1341
  /** @description Internal note on the entity. Used for identifying and differentiating entities with similar names. */
1152
1342
  scopeNote?: string;
@@ -1168,7 +1358,7 @@ interface components {
1168
1358
  neoUri?: string;
1169
1359
  };
1170
1360
  };
1171
- /** @description A Work is defined as "The intellectual or artistic content of a distinct creation" (Library Reference Model)
1361
+ /** @description A Work is defined as "The intellectual or artistic content of a distinct creation" (from the Library Reference Model).
1172
1362
  * It is the top level and most abstract entity in the WEMI stack (Work, Expression, Manifestation, Item), and serves to cluster all expressions of what one could consider "the same book" (or e.g. same play, film, game, etc.) in different formats and languages.
1173
1363
  * While the work is an abstract entity, convention is to assign it a title, language and year in order to aid with identifying the work. */
1174
1364
  SubjectTypeWork: components["schemas"]["SubjectBase"] & {
@@ -1189,12 +1379,16 @@ interface components {
1189
1379
  type: "SubjectTypeCollection";
1190
1380
  /** @constant */
1191
1381
  entityType: "collection_work";
1382
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
1383
+ * */
1192
1384
  collectionType: components["schemas"]["CordataEnumCollectionTypeCode"];
1193
1385
  /** @description Map of identifiers for matching records in external systems. */
1194
1386
  identifiers: {
1195
1387
  bibbiAuthorityId?: string;
1196
1388
  };
1197
1389
  };
1390
+ /** @description Subject for a work or collection: what it is about. Discriminated by `type`.
1391
+ * */
1198
1392
  Subject: components["schemas"]["SubjectTypeConcept"] | components["schemas"]["SubjectTypePlace"] | components["schemas"]["SubjectTypePerson"] | components["schemas"]["SubjectTypeCollectiveAgent"] | components["schemas"]["SubjectTypeEvent"] | components["schemas"]["SubjectTypeWork"] | components["schemas"]["SubjectTypeCollection"];
1199
1393
  /** @description A language map is used to associate a language with a value in a way that allows easy programmatic access. The keys of a language map are strings representing [BCP47](https://www.rfc-editor.org/info/bcp47) language tags, defined as the shortest ISO 639 code for a language. */
1200
1394
  LanguageMapWithEnglish: {
@@ -1202,7 +1396,7 @@ interface components {
1202
1396
  nn: string;
1203
1397
  en: string;
1204
1398
  };
1205
- /** @description Work types from {@link https://www.nb.no/nbvok/vtp/nb/ Nbvok vocabulary of work types } */
1399
+ /** @description Work types from the Nbvok vocabulary of work types. */
1206
1400
  WorkType: {
1207
1401
  /** @constant */
1208
1402
  type: "WorkType";
@@ -1213,7 +1407,7 @@ interface components {
1213
1407
  };
1214
1408
  /** @description Genre is used to group literature and other arts into categories based on stylistic criteria.
1215
1409
  *
1216
- * Bibliographic conventions differ as to whether to separate genre and form, as well as in what constitutes a genre and what constitures a form. The Norwegian national thesaurus for genre and form, (@link https://www.nb.no/nbvok/ntsf/nb/ | NTSF), contains both genre and form without separation. For practical reasons, Cordata therefore includes form as a subtype of Genre, using a boolean toggle to indicate form terms.
1410
+ * Bibliographic conventions differ as to whether to separate genre and form, as well as in what constitutes a genre and what constitures a form. The Norwegian national thesaurus for genre and form, NTSF, contains both genre and form without separation. For practical reasons, Cordata therefore includes form as a subtype of Genre, using a boolean toggle to indicate form terms.
1217
1411
  *
1218
1412
  * Cordata currently contains genres for literature, film and games. Genres for literature and film are mapped to NTSF. Plans are to later include a genre list for music as well. */
1219
1413
  Genre: {
@@ -1226,9 +1420,9 @@ interface components {
1226
1420
  identifiers: {
1227
1421
  /** @description Identifier assigned by Biblioteksentralen for authority records. Unique for all authorities independent of type. */
1228
1422
  bibbiAuthorityId?: string;
1229
- /** @description ID from the Norsk tesaurus for sjanger og form, (@link https://www.nb.no/nbvok/ntsf/nb/ | NTSF). */
1423
+ /** @description ID from the Norsk tesaurus for sjanger og form, NTSF. */
1230
1424
  ntsfId?: string;
1231
- /** @description Identifier for a concept in «Emneord for musikk», a controlled vocabulary of music terminology from the Norwegian Music Library Association (NMBF) published by the Bergen Library (@link https://bergenbibliotek.no/musikkogfilm/emneord-for-musikk/komposisjonstype-og-sjanger/sjanger | NMBF). The published vocabulary does not have persistent identifiers for the concepts, so identifiers are derived from the terms. */
1425
+ /** @description Identifier for a concept in «Emneord for musikk», a controlled vocabulary of music terminology from the Norwegian Music Library Association (NMBF) published by the Bergen Library. The published vocabulary does not have persistent identifiers for the concepts, so identifiers are derived from the terms. */
1232
1426
  nmbfId?: string;
1233
1427
  };
1234
1428
  /** @description Preferred name of the genre. Currently in Norwegian bokmål and nynorsk. */
@@ -1243,22 +1437,38 @@ interface components {
1243
1437
  scopeNote?: string;
1244
1438
  isUnstable: components["schemas"]["IsUnstable"];
1245
1439
  };
1440
+ /** @description A subject in the GREP curriculum database from the Norwegian Directorate for Education and Training (Udir), linked to a work used in education. See the [GREP wiki](https://github.com/Utdanningsdirektoratet/KL06-LK20-public/wiki/).
1441
+ * */
1246
1442
  GrepSubject: {
1247
1443
  /** @constant */
1248
1444
  type: "GrepSubject";
1249
1445
  /** @constant */
1250
1446
  entityType: "grep";
1447
+ /** @description Local identifier for the subject in BMDB. */
1251
1448
  id: components["schemas"]["Id"];
1449
+ /** @description Subject code: unique identifier for the subject in the GREP database. See [fagkode](https://github.com/Utdanningsdirektoratet/KL06-LK20-public/wiki/fagkode).
1450
+ * */
1252
1451
  code: string;
1452
+ /** @description URI of the subject in the GREP database. The URI is based on the subject code. */
1253
1453
  uri: string;
1454
+ /** @description Name of the subject. Several subjects may share the same name; use `notes` to disambiguate them.
1455
+ * */
1254
1456
  name: components["schemas"]["LanguageMap"];
1457
+ /** @description Notes to help disambiguate the subject from other subjects with the same name. */
1255
1458
  notes?: string;
1459
+ /** @description Whether the subject is active or deprecated. */
1256
1460
  status?: string;
1461
+ /** @description Date and time when the subject was last modified in BMDB. */
1257
1462
  modifiedDateTime?: string;
1463
+ /** @description Date and time when the subject was last modified in GREP. */
1258
1464
  originModifiedDateTime?: string;
1465
+ /** @description Reference to another subject that replaces this subject. */
1259
1466
  replacedBy?: string;
1467
+ /** @description Date the subject is valid from. */
1260
1468
  validFrom?: string;
1469
+ /** @description Date the subject is valid until. */
1261
1470
  validUntil?: string;
1471
+ /** @description Date the subject is taught until. */
1262
1472
  teachedUntil?: string;
1263
1473
  approvedDate?: string;
1264
1474
  createdDate?: string;
@@ -1279,7 +1489,7 @@ interface components {
1279
1489
  nortargetUri: string;
1280
1490
  };
1281
1491
  /** @enum {string} */
1282
- CordataEnumWorkWorkRelationTypeCode: "complements" | "complemented_by" | "augments" | "augmented_by" | "part_of" | "has_part" | "replaces" | "replaced_by" | "continuation_of" | "continued_in" | "based_on" | "basis_for" | "inspired_by" | "inspiration_for" | "expansion_of" | "expanded_as" | "is_language_version_of" | "has_language_version";
1492
+ CordataEnumWorkWorkRelationTypeCode: "complements" | "complemented_by" | "augments" | "augmented_by" | "part_of" | "has_part" | "replaces" | "replaced_by" | "continuation_of" | "continued_in" | "abridgement_of" | "abridged_as" | "based_on" | "basis_for" | "inspired_by" | "inspiration_for" | "expansion_of" | "expanded_as" | "is_language_version_of" | "has_language_version";
1283
1493
  /** @description A contents entry, also know as an analytical title entry, describes a work (usually short work) contained in a larger work. It contains a title an optionally the main creator of the work. */
1284
1494
  ContentsEntry: {
1285
1495
  /** @constant */
@@ -1296,11 +1506,14 @@ interface components {
1296
1506
  /** @description Identifier for the BMDB entity from id.nb.no */
1297
1507
  nbBmdbUri?: string;
1298
1508
  };
1509
+ /** @description Number of players supported by a video game, locally and online. */
1299
1510
  NumberOfPlayers: {
1511
+ /** @description Player count for local (same-device or local network) play. */
1300
1512
  local?: {
1301
1513
  minimum: number;
1302
1514
  maximum: number;
1303
1515
  };
1516
+ /** @description Player count for online play. */
1304
1517
  online?: {
1305
1518
  minimum: number;
1306
1519
  maximum: number;
@@ -1313,7 +1526,7 @@ interface components {
1313
1526
  nn: string;
1314
1527
  };
1315
1528
  };
1316
- /** @description A Collection Expression expresses a {@link CollectionWork } in the same way an {@link Expression } expresses a {@link Work } .
1529
+ /** @description A Collection Expression expresses a CollectionWork in the same way an Expression expresses a Work.
1317
1530
  *
1318
1531
  * A Collection Expression contains either expressions or manifestations; this is encoded in the `domain` property. Collections on the expression level indicate that the members have shared elements which are intrinsic to the works contained, while collections on the manifestation level are often assigned by publishers and indicate thematic relations that are not intrinsic to the works but may still be interesting as a selection criterion.
1319
1532
  *
@@ -1332,7 +1545,7 @@ interface components {
1332
1545
  nbBmdbUri?: string;
1333
1546
  };
1334
1547
  expressionType?: components["schemas"]["CordataEnumExpressionType"];
1335
- /** @description Preferred title of the Collection expression. See {@link Title } for individual components of title. */
1548
+ /** @description Preferred title of the Collection expression. See Title for individual components of title. */
1336
1549
  preferredTitle: components["schemas"]["RegularTitle"];
1337
1550
  /** @description Variant title of the Collection expression.
1338
1551
  *
@@ -1343,13 +1556,13 @@ interface components {
1343
1556
  parallelTitles: components["schemas"]["LegacyRegularTitle"][];
1344
1557
  /** @description Whether the text has one or more translations side by side. */
1345
1558
  hasParallelText: boolean;
1346
- /** @description List of contributors in the form of * {@link Agent agents } * (persons or organizations) and their * {@link Role roles } * in the creation of the Collection. */
1559
+ /** @description List of contributors in the form of *agents* (persons or organizations) and their *roles* in the creation of the Collection. */
1347
1560
  contributors: components["schemas"]["Contributor"][];
1348
1561
  /** @description The language(s) of the series. */
1349
1562
  languages: components["schemas"]["Language"][];
1350
1563
  /** @description Internal note detailing relevant information about the collection, e.g. "series numbering on spine" */
1351
1564
  note?: string;
1352
- /** @description {@link https://en.wikipedia.org/wiki/ISSN ISSN } - International identifier for serials.
1565
+ /** @description ISSN. International identifier for serials.
1353
1566
  *
1354
1567
  * Not all collections will have an ISSN - they are typically assigned to periodicals and certain academic serials.
1355
1568
  *
@@ -1380,9 +1593,7 @@ interface components {
1380
1593
  };
1381
1594
  /** @description A Collection is a set of entities - manifestations or works - that share certain features.
1382
1595
  *
1383
- * The collection can be explicitly named in the source material, such as the series "SF Masterworks" which is a collection of acclaimed SF novels published by Gollancz, or constructed from a set of features that the collected entities have in common, such as "The Lovecraft Mythos" for works that use creatures and features from H.P. Lovecraft's fictional universe.
1384
- *
1385
- * Later iterations will add variant titles, summary, genres, subjects and other metadata elements as optional fields to this entity. */
1596
+ * The collection can be explicitly named in the source material, such as the series "SF Masterworks" which is a collection of acclaimed SF novels published by Gollancz, or constructed from a set of features that the collected entities have in common, such as "The Lovecraft Mythos" for works that use creatures and features from H.P. Lovecraft's fictional universe. */
1386
1597
  BaseCollectionWork: {
1387
1598
  /** @constant */
1388
1599
  type: "CollectionWork";
@@ -1390,16 +1601,18 @@ interface components {
1390
1601
  entityType: "collection_work";
1391
1602
  id: components["schemas"]["Id"];
1392
1603
  identifiers: components["schemas"]["CollectionWorkIdentifiers"];
1604
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
1605
+ * */
1393
1606
  collectionType: components["schemas"]["CordataEnumCollectionTypeCode"];
1394
1607
  workType?: components["schemas"]["CordataEnumWorkType"];
1395
- /** @description TODO */
1608
+ /** @description The type of literature of the collection ("skjønnlitteratur", "sakprosa", "faglitteratur"). */
1396
1609
  literatureType?: components["schemas"]["LiteratureType"];
1397
1610
  /** @description Preferred title of Collection work.
1398
1611
  *
1399
- * See {@link Title } for individual components of title. */
1612
+ * See Title for individual components of title. */
1400
1613
  preferredTitle: components["schemas"]["RegularTitle"];
1401
1614
  variantTitles?: components["schemas"]["LegacyRegularTitle"][];
1402
- /** @description List of contributors in the form of * {@link Agent agents } * (persons or organizations) and their * {@link Role roles } * in the creation of the Collection. */
1615
+ /** @description List of contributors in the form of *agents* (persons or organizations) and their *roles* in the creation of the Collection. */
1403
1616
  contributors: components["schemas"]["Contributor"][];
1404
1617
  languages?: components["schemas"]["Language"][];
1405
1618
  subjects?: components["schemas"]["Subject"][];
@@ -1413,7 +1626,8 @@ interface components {
1413
1626
  /** @description Links the Collection Expression to the Collection Work it expresses. */
1414
1627
  workExpressed?: components["schemas"]["BaseCollectionWork"];
1415
1628
  superCollection?: components["schemas"]["BaseCollectionExpression"] & {
1416
- /** @description TODO */
1629
+ /** @description The collection work expressed by this super-collection.
1630
+ * */
1417
1631
  workExpressed?: {
1418
1632
  /** @constant */
1419
1633
  entityType: "collection_work";
@@ -1443,6 +1657,7 @@ interface components {
1443
1657
  /** @description Abbreviated name of the platform. Example: "PS4" */
1444
1658
  abbreviatedName?: string;
1445
1659
  };
1660
+ /** @description A musical instrument in an instrumentation. */
1446
1661
  MusicInstrument: {
1447
1662
  /** @constant */
1448
1663
  type: "MusicInstrument";
@@ -1452,6 +1667,7 @@ interface components {
1452
1667
  name: components["schemas"]["LanguageMap"];
1453
1668
  alternativeNames?: components["schemas"]["LanguageMapList"];
1454
1669
  };
1670
+ /** @description A set of instruments, and optionally number of performers, for one scoring of a music work. */
1455
1671
  Instrumentation: {
1456
1672
  /** @constant */
1457
1673
  type: "Instrumentation";
@@ -1514,13 +1730,19 @@ interface components {
1514
1730
  name: string;
1515
1731
  isUnstable: components["schemas"]["IsUnstable"];
1516
1732
  };
1733
+ /** @description Publisher (imprint) and place of publication as stated on the manifestation. */
1517
1734
  PublicationStatement: {
1518
1735
  imprint: components["schemas"]["Imprint"];
1736
+ /** @description Place names associated with this imprint on the manifestation. */
1519
1737
  places: string[];
1520
1738
  };
1739
+ /** @description Duration of a manifestation, split into hours and minutes. */
1521
1740
  DurationRecord: {
1741
+ /** @description Whether the duration is approximate. */
1522
1742
  approximate: boolean;
1743
+ /** @description Whole hours of duration, when 60 minutes or more. */
1523
1744
  hours?: number;
1745
+ /** @description Remaining minutes after hours, or total minutes when `hours` is omitted. */
1524
1746
  minutes: number;
1525
1747
  };
1526
1748
  /**
@@ -1545,9 +1767,12 @@ interface components {
1545
1767
  value: string;
1546
1768
  noteType: components["schemas"]["NoteTypeEnum"];
1547
1769
  };
1548
- /** @enum {string} */
1770
+ /**
1771
+ * @description Identifier of a digital lending or streaming service.
1772
+ * @enum {string}
1773
+ */
1549
1774
  DigitalServiceId: "filmoteket" | "cineast";
1550
- /** @description A Manifestation is defined as "A set of all carriers that are assumed to share the same characteristics as to intellectual or artistic content and aspects of physical form. That set is defined by both the overall content and the production plan for its carrier or carriers" {@link https://www.iflastandards.info/lrm/lrmer#E4 Library Reference Model }
1775
+ /** @description A Manifestation is defined as "A set of all carriers that are assumed to share the same characteristics as to intellectual or artistic content and aspects of physical form. That set is defined by both the overall content and the production plan for its carrier or carriers" (from the Library Reference Model).
1551
1776
  *
1552
1777
  * It is the third level entity in the WEMI stack (Work, Expression, Manifestation, Item), and is used to cluster all Items of the same edition. */
1553
1778
  Manifestation: {
@@ -1557,11 +1782,13 @@ interface components {
1557
1782
  entityType: "manifestation";
1558
1783
  id: components["schemas"]["Id"];
1559
1784
  identifiers: components["schemas"]["ManifestationIdentifiers"];
1785
+ /** @description Time the manifestation record was created. */
1560
1786
  createDate?: string;
1787
+ /** @description Time the manifestation record was last modified. */
1561
1788
  updateDate?: string;
1562
1789
  /** @description Preferred title of manifestation.
1563
1790
  *
1564
- * The preferred source of title for a manifestation is the title page. See also {@link parallelTitles } and {@link variantTitles } . */
1791
+ * The preferred source of title for a manifestation is the title page. See also parallelTitles and variantTitles. */
1565
1792
  preferredTitle: components["schemas"]["RegularTitle"];
1566
1793
  /** @description Parallel titles
1567
1794
  *
@@ -1577,19 +1804,23 @@ interface components {
1577
1804
  coverImage?: string;
1578
1805
  /** @description The binding type for paper books. */
1579
1806
  binding?: components["schemas"]["CordataEnumBindingType"];
1807
+ /** @description Carrier or medium of this manifestation, for example print, e-book or audio file. */
1580
1808
  manifestationMedium: components["schemas"]["CordataEnumManifestationMedium"];
1581
- /** @description Statement of responsibility is a human-readable text string that */
1809
+ /** @description Human-readable statement naming the persons or organizations responsible for the content, typically transcribed from the title page.
1810
+ * */
1582
1811
  statementOfResponsibility?: string;
1583
- /** @description {@link https://en.wikipedia.org/wiki/ISBN ISBN } . International identifier for manifestations of books, including e-books and audio books.
1812
+ /** @description ISBN. International identifier for manifestations of books, including e-books and audio books.
1584
1813
  *
1585
1814
  * Intended to be unique, but is not always. A single manifestation may have more than one, or the same ISBN may erroneously be assigned to different editions of the same book or even two separate works.
1586
1815
  *
1587
1816
  * Often styled with hyphens between the groups of numbers to aid with human-readability, but these are not an intrinsic part of the ISBN. */
1588
1817
  isbn: string[];
1818
+ /** @description ISBNs that are evidently incorrect for this manifestation. Typical case: the ISBN from the previous book in a series was printed on the barcode, while the ISBN intended for this book is on the title-page verso. */
1589
1819
  incorrectIsbn: string[];
1590
- /** @description {@link https://en.wikipedia.org/wiki/International_Standard_Music_Number ISMN } . International identifier for manifestations of printed music. */
1820
+ /** @description ISMN. International identifier for manifestations of printed music.
1821
+ * */
1591
1822
  ismn: string[];
1592
- /** @description {@ link https://en.wikipedia.org/wiki/International_Article_Number | EAN}. Identifier for manifestations other than books and printed music.
1823
+ /** @description EAN. Identifier for manifestations other than books and printed music.
1593
1824
  *
1594
1825
  * In a library context, typically found on film, video games and recorded music. May occasionally be used on printed music, very rarely on books, in combination with or instead of ISMN/ISBN. */
1595
1826
  ean: string[];
@@ -1607,7 +1838,8 @@ interface components {
1607
1838
  /** @description Edition Statement
1608
1839
  * The edition statement is a word or phrase that indicates a difference in either content or form between different manifestations. Examples: "3rd", "Norwegian Edition", "Revised", "Definitive Edition" */
1609
1840
  editionStatement?: string;
1610
- /** @description An object linking an {@link Agent } to the work with a {@link Role } showing the function the agent has played in the creation of the work. */
1841
+ /** @description Agents linked to this manifestation and the role each played in producing it (for example cover designer or illustrator of this edition).
1842
+ * */
1611
1843
  contributors: components["schemas"]["Contributor"][];
1612
1844
  /** @description Subtitle languages (Språk for undertekster)
1613
1845
  *
@@ -1621,19 +1853,19 @@ interface components {
1621
1853
  *
1622
1854
  * List of languages for which audio descriptions are provided as an alternative mode of access to the visual content of the movie. */
1623
1855
  audioDescriptionLanguages?: components["schemas"]["Language"][];
1624
- /** @description TODO */
1856
+ /** @description Number of pages. For printed books this is typically the last numbered page. */
1625
1857
  pages?: number;
1626
- /** @description Duration of the movie. */
1858
+ /** @description Duration of the manifestation, typically for film, audio and similar media. */
1627
1859
  duration?: components["schemas"]["DurationRecord"];
1628
- /** @description Links an expression to the {@link CollectionExpression } of a collection the expression is part of. */
1860
+ /** @description Links an expression to the CollectionExpression of a collection the expression is part of. */
1629
1861
  collections: components["schemas"]["ExpressionCollectionExpressionEntry"][];
1630
1862
  /** @description Specifies the material that accompanyies the item, typically of document type "Combined document" or "Language Course" */
1631
1863
  accompanyingMaterial?: string;
1864
+ /** @description Cataloguer notes about the manifestation. */
1632
1865
  notes?: components["schemas"]["Note"][];
1633
- kulturfond?: {
1634
- status: boolean;
1635
- program?: string;
1636
- };
1866
+ /** @description Whether the manifestation has been approved by Arts Council Norway (Kulturrådet) for library distribution through Innkjøpsordningane for litteratur.
1867
+ * */
1868
+ kulturfond?: components["schemas"]["Kulturfond"];
1637
1869
  /** @description This is an aggregate manifestation containing several works. */
1638
1870
  isAggregateManifestation?: boolean;
1639
1871
  /** @description A list of library catalogues that include this manifestation.
@@ -1658,7 +1890,7 @@ interface components {
1658
1890
  digitalServiceRecords: string[];
1659
1891
  isUnstable: components["schemas"]["IsUnstable"];
1660
1892
  };
1661
- /** @description An Expression is defined as "A distinct combination of signs conveying intellectual or artistic content" {@link https://www.iflastandards.info/lrm/lrmer#E3 Library Reference Model }
1893
+ /** @description An Expression is defined as "A distinct combination of signs conveying intellectual or artistic content" (from the Library Reference Model).
1662
1894
  *
1663
1895
  * It is the second level entity in the WEMI stack (Work, Expression, Manifestation, Item), and serves to group Manifestations of the same language and type - that is to say all manifestations using the same semiotic signs to convey the content. */
1664
1896
  Expression: {
@@ -1668,13 +1900,15 @@ interface components {
1668
1900
  entityType: "expression";
1669
1901
  id: components["schemas"]["Id"];
1670
1902
  identifiers?: components["schemas"]["ExpressionIdentifiers"];
1671
- /** @description Preferred title of expression. See {@link Title } for individual components of title. */
1903
+ /** @description Preferred title of expression. See Title for individual components of title. */
1672
1904
  preferredTitle: components["schemas"]["RegularTitle"];
1673
- /** @description TODO */
1905
+ /** @description Variant titles of the expression in the same language as the preferred title, recorded when the expression is known under more than one title.
1906
+ * */
1674
1907
  variantTitles?: components["schemas"]["LegacyRegularTitle"][];
1675
- /** @description TODO */
1908
+ /** @description Parallel titles of the expression in other languages, typically when the same expression carries titles in more than one language.
1909
+ * */
1676
1910
  parallelTitles?: components["schemas"]["LegacyRegularTitle"][];
1677
- /** @description A list of contributors in the form of {@link Agent } s and their {@link Role } s in the creation of the Expression. */
1911
+ /** @description A list of contributors in the form of Agents and their Roles in the creation of the Expression. */
1678
1912
  contributors: components["schemas"]["Contributor"][];
1679
1913
  /** @description The language(s) of the expression.
1680
1914
  *
@@ -1704,7 +1938,10 @@ interface components {
1704
1938
  code: "illustrations" | "not_illustrated" | "color_illustrations" | "tactile_color_illustrations" | "tactile_illustrations";
1705
1939
  label: components["schemas"]["LanguageMapWithEnglish"];
1706
1940
  };
1941
+ /** @description Manifestations of this expression. */
1707
1942
  manifestations: components["schemas"]["Manifestation"][];
1943
+ /** @description Aggregate manifestations that contain this expression together with other works (for example an anthology).
1944
+ * */
1708
1945
  aggregateManifestations: components["schemas"]["Manifestation"][];
1709
1946
  isUnstable: components["schemas"]["IsUnstable"];
1710
1947
  };
@@ -1726,7 +1963,7 @@ interface components {
1726
1963
  *
1727
1964
  * For works where the first publication has two main titles separated by "or" (subsequent main title), only the first title is registered as the preferred title for the work, e.g. *"The hobbit"*, not *"The hobbit, or, There and back again"*.
1728
1965
  *
1729
- * Classical music works without titles in the traditional sense will instead get a generic uniform title, synthesized from key information about the work, such as "Symphonies, no. 6, op. 6, F major". In these cases, the title is of type {@link UniformTitleMusic } . */
1966
+ * Classical music works without titles in the traditional sense will instead get a generic uniform title, synthesized from key information about the work, such as "Symphonies, no. 6, op. 6, F major". In these cases, the title is of type UniformTitleMusic. */
1730
1967
  preferredTitle: components["schemas"]["RegularTitle"] | components["schemas"]["UniformTitleMusic"];
1731
1968
  /** @description Variant titles which aid in identifying a manifestation as belonging to a work.
1732
1969
  *
@@ -1735,11 +1972,11 @@ interface components {
1735
1972
  * - there are established longer or shorter forms of the title, e.g. "The tragedy of Hamlet, prince of Denmark" for "Hamlet".
1736
1973
  * - The uniform title differs from the title in the original language, e.g. "Alf laylah wa-laylah" for "Tusen og en natt".
1737
1974
  *
1738
- * See {@link Title } for individual components of title. */
1975
+ * See Title for individual components of title. */
1739
1976
  variantTitles: components["schemas"]["LegacyRegularTitle"][];
1740
- /** @description The languages of the representative expression of the work. TODO: different description for summary? */
1977
+ /** @description The languages of the representative expression of the work. */
1741
1978
  languages: components["schemas"]["Language"][];
1742
- /** @description List of contributors to the *work* in the form of * {@link Agent agents } * (persons or organizations) and their * {@link Role roles } * in the creation of the work.
1979
+ /** @description List of contributors to the *work* in the form of *agents* (persons or organizations) and their *roles* in the creation of the work.
1743
1980
  *
1744
1981
  * Work contributors include authors for books, editors for edited works, composers for music, directors and screenwriters for films, etc., but not contributors that played a role in the creation of a specific expression (e.g. translators, illustrators, etc.) or manifestation (e.g. illustrators, cover designers, etc.). */
1745
1982
  contributors: components["schemas"]["Contributor"][];
@@ -1751,12 +1988,18 @@ interface components {
1751
1988
  * Both fiction and non-fiction are assigned age groups based on interest level; Biblioteksentralen does not assign reading level age groups. */
1752
1989
  ageGroups: components["schemas"]["AgeGroup"][];
1753
1990
  ageLimit?: components["schemas"]["AgeLimit"];
1991
+ /** @description Plot summary or other descriptive text of the work, when available. */
1754
1992
  summary?: string;
1993
+ /** @description Subjects describing what the work is about. */
1755
1994
  subjects: components["schemas"]["Subject"][];
1995
+ /** @description Genres and form terms. Form terms have `isForm: true`. */
1756
1996
  genres: components["schemas"]["Genre"][];
1997
+ /** @description GREP curriculum subjects from the Norwegian Directorate for Education and Training (Udir), linked to a work used in education.
1998
+ * */
1757
1999
  grepSubjects?: components["schemas"]["GrepSubject"][];
1758
2000
  /** @description Whether the work has been created or adapted for users with special needs. */
1759
2001
  accessibleContentFeature?: components["schemas"]["AccessibleContentFeature"];
2002
+ /** @description Note on biographical content in the work, when recorded. */
1760
2003
  biographicContent?: string;
1761
2004
  relatedWorks?: {
1762
2005
  /** @description Id of the related work. */
@@ -1781,48 +2024,72 @@ interface components {
1781
2024
  */
1782
2025
  scheme: "webdewey" | "ddk5";
1783
2026
  };
2027
+ /** @description Expressions of this work, each with their manifestations.
2028
+ * */
1784
2029
  expressions: components["schemas"]["Expression"][];
1785
2030
  };
2031
+ /** @description Full `Work` records for the requested IDs. */
1786
2032
  GetWorks200Response: {
1787
2033
  total?: components["schemas"]["total"];
1788
2034
  results: {
1789
2035
  work: components["schemas"]["Work"];
1790
2036
  }[];
1791
2037
  };
2038
+ /** @description A batch of full `Work` records from a harvest. `resumptionToken` is present when more remain. */
1792
2039
  HarvestWorks200Response: {
1793
2040
  results: components["schemas"]["Work"][];
1794
- /** @description Dersom det er mer data å høste returneres en resumption token.
2041
+ /** @description Present when more records remain. Repeat the request with this token to fetch the next batch. Omitted on the last page.
1795
2042
  * */
1796
2043
  resumptionToken?: string;
1797
2044
  };
2045
+ /** @description A batch of work IDs from a harvest. `resumptionToken` is present when more remain. */
1798
2046
  HarvestWorkIds200Response: {
1799
2047
  results: string[];
1800
- /** @description Dersom det er mer data å høste returneres en resumption token.
2048
+ /** @description Present when more records remain. Repeat the request with this token to fetch the next batch. Omitted on the last page.
1801
2049
  * */
1802
2050
  resumptionToken?: string;
1803
2051
  };
1804
2052
  AgentSearchFilterType: {
2053
+ /** @description Any known identifier for the agent (BMDB ID, NORAF, ISNI, Bokbasen, and others). */
1805
2054
  identifier?: string;
2055
+ /** @description BMDB agent ID. */
1806
2056
  id?: string;
2057
+ /** @description NORAF identifier (Norwegian Authority File). */
1807
2058
  noraf?: string;
2059
+ /** @description Bokbasen agent identifier. */
1808
2060
  bokbasen?: string;
2061
+ /** @description ISNI (16 digits, no hyphens). */
1809
2062
  isni?: string;
2063
+ /** @description Library catalogue ID. */
1810
2064
  catalogue?: string;
2065
+ /** @description National affiliation of the agent. */
1811
2066
  nationality?: string;
2067
+ /** @description Contributor role, for example author or translator. */
1812
2068
  role?: string;
1813
2069
  };
1814
2070
  /**
1815
2071
  * @description How the search results should be sorted. Available options:
1816
2072
  *
1817
- * - `relevance.desc`
1818
- * - `updateTime.desc`
1819
- * - `updateTime.asc`
2073
+ * - `relevance.desc`: How well the results match the query (default when `query` is set)
2074
+ * - `updateTime.desc`: Time of last change (newest first; default when `query` is omitted)
2075
+ * - `updateTime.asc`: Time of last change (oldest first)
1820
2076
  * @enum {string}
1821
2077
  */
1822
2078
  AgentSearchSortType: "relevance.desc" | "updateTime.desc" | "updateTime.asc";
1823
- /** @enum {string} */
2079
+ /**
2080
+ * @description Facet type to include in the response. Available options:
2081
+ *
2082
+ * - `catalogue`: Library catalogue ID.
2083
+ * - `nationality`: National affiliation of the agent.
2084
+ * - `role`: Contributor role, for example author or translator.
2085
+ * @enum {string}
2086
+ */
1824
2087
  AgentSearchFacetType: "catalogue" | "nationality" | "role";
1825
- /** AgentSummary */
2088
+ /**
2089
+ * AgentSummary
2090
+ * @description Compact agent record returned by agent search. Fetch `GET /{searchProfile}/agents` for the full Person, CollectiveAgent or ArtificialAgent.
2091
+ *
2092
+ */
1826
2093
  AgentSummary: components["schemas"]["AgentSummaryBase"] & {
1827
2094
  /** @constant */
1828
2095
  type: "AgentSummary";
@@ -1834,6 +2101,7 @@ interface components {
1834
2101
  name?: string;
1835
2102
  terms: components["schemas"]["FacetTerm"][];
1836
2103
  };
2104
+ /** @description Paginated agent search result. Each hit is an `AgentSummary`. */
1837
2105
  SearchAgents200Response: {
1838
2106
  total?: components["schemas"]["total"];
1839
2107
  results: {
@@ -1846,6 +2114,7 @@ interface components {
1846
2114
  advancedQueryErrors?: components["schemas"]["advancedQueryErrors"];
1847
2115
  sorting: components["schemas"]["AgentSearchSortType"];
1848
2116
  };
2117
+ /** @description Full agent records (`Person`, `CollectiveAgent` or `ArtificialAgent`) for the requested IDs. */
1849
2118
  GetAgents200Response: {
1850
2119
  total?: components["schemas"]["total"];
1851
2120
  results: {
@@ -1853,24 +2122,36 @@ interface components {
1853
2122
  }[];
1854
2123
  };
1855
2124
  CollectionSearchFilterType: {
2125
+ /** @description Any known identifier for the collection (BMDB ID, Bibbi authority ID, and others). */
1856
2126
  identifier?: string;
2127
+ /** @description BMDB collection ID. */
1857
2128
  id?: string;
2129
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games). */
1858
2130
  collection_type?: string;
2131
+ /** @description Library catalogue ID. */
1859
2132
  catalogue?: string;
2133
+ /** @description Collection creator. */
1860
2134
  creator?: string;
1861
2135
  };
1862
2136
  /**
1863
2137
  * @description How the search results should be sorted. Available options:
1864
2138
  *
1865
- * - `relevance.desc`
1866
- * - `updateTime.desc`
1867
- * - `updateTime.asc`
2139
+ * - `relevance.desc`: How well the results match the query (default when `query` is set)
2140
+ * - `updateTime.desc`: Time of last change (newest first; default when `query` is omitted)
2141
+ * - `updateTime.asc`: Time of last change (oldest first)
1868
2142
  * @enum {string}
1869
2143
  */
1870
2144
  CollectionSearchSortType: "relevance.desc" | "updateTime.desc" | "updateTime.asc";
1871
- /** @enum {string} */
2145
+ /**
2146
+ * @description Facet type to include in the response. Available options:
2147
+ *
2148
+ * - `catalogue`: Library catalogue ID.
2149
+ * - `creator`: Collection creator.
2150
+ * @enum {string}
2151
+ */
1872
2152
  CollectionSearchFacetType: "catalogue" | "creator";
1873
- /** @description TODO */
2153
+ /** @description Compact collection record returned by collection search. A collection is a set of works that share features, such as a named book series or a constructed grouping. Fetch `GET /{searchProfile}/collections` for the full collection work and its expressions.
2154
+ * */
1874
2155
  CollectionSummary: {
1875
2156
  /** @constant */
1876
2157
  type: "CollectionSummary";
@@ -1878,15 +2159,18 @@ interface components {
1878
2159
  entityType: "collection_work";
1879
2160
  id: components["schemas"]["Id"];
1880
2161
  identifiers: components["schemas"]["CollectionWorkIdentifiers"];
2162
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
2163
+ * */
1881
2164
  collectionType: components["schemas"]["CordataEnumCollectionTypeTranslated"];
1882
2165
  workType?: components["schemas"]["CordataEnumWorkTypeTranslated"];
1883
2166
  expressionType?: components["schemas"]["CordataEnumExpressionTypeTranslated"];
1884
2167
  literatureType?: components["schemas"]["LiteratureTypeTranslated"];
1885
2168
  /** @description Preferred title of Collection work.
1886
2169
  *
1887
- * See {@link Title } for individual components of title. */
2170
+ * See Title for individual components of title. */
1888
2171
  preferredTitle: components["schemas"]["TitleSummary"];
1889
- /** @description TODO (languages from all collection expressions) */
2172
+ /** @description Languages of the collection's expressions. Each inner array is the language set of one collection expression.
2173
+ * */
1890
2174
  languages: components["schemas"]["Language"][][];
1891
2175
  forms?: {
1892
2176
  /** @constant */
@@ -1918,11 +2202,9 @@ interface components {
1918
2202
  nbVokUri?: string;
1919
2203
  };
1920
2204
  })[];
1921
- /** @description List of contributors to the *work* in the form of * {@link Agent agents } * (persons or organizations) and their * {@link Role roles } * in the creation of the work.
1922
- *
1923
- * Work contributors include authors for books, editors for edited works, composers for music, directors and screenwriters for films, etc., but not contributors that played a role in the creation of a specific expression (e.g. translators, illustrators, etc.) or manifestation (e.g. illustrators, cover designers, etc.). */
2205
+ /** @description List of contributors to the *work* in the form of *agents* and their *roles* in the creation of the work. */
1924
2206
  contributors: components["schemas"]["WorkSummaryContributor"][];
1925
- /** @description TODO */
2207
+ /** @description Image URLs associated with the collection, typically cover images. */
1926
2208
  images: string[];
1927
2209
  superCollection?: {
1928
2210
  /** @constant */
@@ -1930,10 +2212,12 @@ interface components {
1930
2212
  /** @constant */
1931
2213
  entityType: "collection_work";
1932
2214
  id: string;
2215
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
2216
+ * */
1933
2217
  collectionType: components["schemas"]["CordataEnumCollectionTypeTranslated"];
1934
2218
  /** @description Preferred title of Collection work.
1935
2219
  *
1936
- * See {@link Title } for individual components of title. */
2220
+ * See Title for individual components of title. */
1937
2221
  preferredTitle: components["schemas"]["TitleSummary"];
1938
2222
  };
1939
2223
  isUnstable: components["schemas"]["IsUnstable"];
@@ -1944,6 +2228,7 @@ interface components {
1944
2228
  name?: string;
1945
2229
  terms: components["schemas"]["FacetTerm"][];
1946
2230
  };
2231
+ /** @description Paginated collection search result. Each hit is a `CollectionSummary`. */
1947
2232
  SearchCollections200Response: {
1948
2233
  total?: components["schemas"]["total"];
1949
2234
  results: {
@@ -1956,12 +2241,16 @@ interface components {
1956
2241
  advancedQueryErrors?: components["schemas"]["advancedQueryErrors"];
1957
2242
  sorting: components["schemas"]["CollectionSearchSortType"];
1958
2243
  };
1959
- /** CollectionWork */
2244
+ /**
2245
+ * CollectionWork
2246
+ * @description Full collection record returned by get-by-ID. Includes collection expressions and an optional super-collection (for nested series).
2247
+ *
2248
+ */
1960
2249
  CollectionWork: components["schemas"]["BaseCollectionWork"] & {
1961
2250
  superCollection?: components["schemas"]["BaseCollectionWork"];
1962
2251
  /** CollectionExpression */
1963
2252
  collectionExpressions: (components["schemas"]["BaseCollectionExpression"] & {
1964
- /** @description TODO */
2253
+ /** @description Image URLs associated with this collection expression, typically cover images. */
1965
2254
  images: string[];
1966
2255
  /** @description A list of library catalogues that include this collection expression.
1967
2256
  * Example: [{"id: "tonsberg", name: "Tønsberg og Færder" }] */
@@ -1974,6 +2263,7 @@ interface components {
1974
2263
  };
1975
2264
  })[];
1976
2265
  };
2266
+ /** @description Full `CollectionWork` records for the requested IDs. */
1977
2267
  GetCollections200Response: {
1978
2268
  total?: components["schemas"]["total"];
1979
2269
  results: {
@@ -1981,22 +2271,33 @@ interface components {
1981
2271
  }[];
1982
2272
  };
1983
2273
  SubjectSearchFilterType: {
2274
+ /** @description Any known identifier for the subject (BMDB ID, Bibbi authority ID, and others). */
1984
2275
  identifier?: string;
2276
+ /** @description BMDB subject ID. */
1985
2277
  id?: string;
1986
- /** @enum {string} */
1987
- type?: "concept" | "event" | "agent" | "work" | "collection_work";
2278
+ /**
2279
+ * @description Kind of subject.
2280
+ * @enum {string}
2281
+ */
2282
+ type?: "concept" | "event" | "place" | "agent" | "work" | "collection_work";
2283
+ /** @description Library catalogue ID. */
1988
2284
  catalogue?: string;
1989
2285
  };
1990
2286
  /**
1991
2287
  * @description How the search results should be sorted. Available options:
1992
2288
  *
1993
- * - `relevance.desc`
1994
- * - `updateTime.desc`
1995
- * - `updateTime.asc`
2289
+ * - `relevance.desc`: How well the results match the query (default when `query` is set)
2290
+ * - `updateTime.desc`: Time of last change (newest first; default when `query` is omitted)
2291
+ * - `updateTime.asc`: Time of last change (oldest first)
1996
2292
  * @enum {string}
1997
2293
  */
1998
2294
  SubjectSearchSortType: "relevance.desc" | "updateTime.desc" | "updateTime.asc";
1999
- /** @enum {string} */
2295
+ /**
2296
+ * @description Facet type to include in the response. Available options:
2297
+ *
2298
+ * - `catalogue`: Library catalogue ID.
2299
+ * @enum {string}
2300
+ */
2000
2301
  SubjectSearchFacetType: "catalogue";
2001
2302
  CordataEnumConceptTypeTranslated: {
2002
2303
  code: components["schemas"]["CordataEnumConceptTypeCode"];
@@ -2010,13 +2311,18 @@ interface components {
2010
2311
  code: components["schemas"]["CordataEnumPlaceTypeCode"];
2011
2312
  label: string;
2012
2313
  };
2314
+ /** @description Compact subject returned by subject search. `name` is the display label. `about` is the entity the subject refers to. Fetch `GET /{searchProfile}/subjects` for the full `Subject`.
2315
+ * */
2013
2316
  SubjectSummary: {
2014
2317
  id: components["schemas"]["Id"];
2318
+ /** @description Display name of the subject. */
2015
2319
  name: string;
2016
2320
  /** @constant */
2017
2321
  type: "SubjectSummary";
2018
2322
  /** @constant */
2019
2323
  entityType: "subject";
2324
+ /** @description The entity this subject concerns: a concept, event, place, agent, work or collection.
2325
+ * */
2020
2326
  about?: {
2021
2327
  /** @constant */
2022
2328
  type: "SubjectSummaryConcept";
@@ -2071,6 +2377,8 @@ interface components {
2071
2377
  type: "SubjectSummaryCollection";
2072
2378
  /** @constant */
2073
2379
  entityType: "collection_work";
2380
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
2381
+ * */
2074
2382
  collectionType: components["schemas"]["CordataEnumCollectionTypeTranslated"];
2075
2383
  identifiers: components["schemas"]["CollectionWorkIdentifiers"];
2076
2384
  };
@@ -2081,6 +2389,7 @@ interface components {
2081
2389
  name?: string;
2082
2390
  terms: components["schemas"]["FacetTerm"][];
2083
2391
  };
2392
+ /** @description Paginated subject search result. Each hit is a `SubjectSummary`. */
2084
2393
  SearchSubjects200Response: {
2085
2394
  total?: components["schemas"]["total"];
2086
2395
  results: {
@@ -2093,12 +2402,15 @@ interface components {
2093
2402
  advancedQueryErrors?: components["schemas"]["advancedQueryErrors"];
2094
2403
  sorting: components["schemas"]["SubjectSearchSortType"];
2095
2404
  };
2405
+ /** @description Full `Subject` records for the requested IDs. */
2096
2406
  GetSubjects200Response: {
2097
2407
  total?: components["schemas"]["total"];
2098
2408
  results: {
2099
2409
  subject: components["schemas"]["Subject"];
2100
2410
  }[];
2101
2411
  };
2412
+ /** @description Compact work attached to a catalogue record: the work the record embodies (1-1), or a work contained (1-N) in an aggregate manifestation.
2413
+ * */
2102
2414
  CatalogueRecordWork: {
2103
2415
  /** @constant */
2104
2416
  type: "CatalogueRecordWork";
@@ -2138,7 +2450,9 @@ interface components {
2138
2450
  }[];
2139
2451
  isUnstable: components["schemas"]["IsUnstable"];
2140
2452
  };
2141
- /** @description TODO */
2453
+ /** @description A library catalogue record expressed as the Cordata work, expression and manifestation it has been matched to.
2454
+ * `id` is the local library-system record ID (or a BMDB manifestation ID when using search profile `global`). `work` is the work the record embodies (1-1). Aggregate manifestations also list other contained works (1-N) in `containedWorks` (for example the individual short stories in a collection).
2455
+ * */
2142
2456
  CatalogueRecord: {
2143
2457
  /** @constant */
2144
2458
  type: "CatalogueRecord";
@@ -2146,7 +2460,10 @@ interface components {
2146
2460
  * The exception is when using the `global` search profile, in which case the ID is also the globally unique `manifestationId` from BMDB. */
2147
2461
  id: string;
2148
2462
  work: components["schemas"]["CatalogueRecordWork"];
2149
- /** @description TODO */
2463
+ /** @description Additional works that this manifestation *contains* (1-N), besides the work it *embodies* (1-1) on `work`.
2464
+ *
2465
+ * For a short-story collection, for example, the short stories themselves are works contained in the manifestation, while the collection also constitute its own work embodied by the manifestation. Empty or omitted when the manifestation embodies a single work.
2466
+ * */
2150
2467
  containedWorks?: components["schemas"]["CatalogueRecordWork"][];
2151
2468
  expression: {
2152
2469
  /** @constant */
@@ -2179,6 +2496,7 @@ interface components {
2179
2496
  };
2180
2497
  isUnstable: components["schemas"]["IsUnstable"];
2181
2498
  };
2499
+ /** @description Catalogue records for the requested IDs, expressed as Cordata entities. */
2182
2500
  GetCatalogueRecords200Response: {
2183
2501
  total?: components["schemas"]["total"];
2184
2502
  results: {
@@ -2187,18 +2505,21 @@ interface components {
2187
2505
  };
2188
2506
  SuggestionSearchFilterType: {
2189
2507
  /**
2190
- * @description Suggestion type
2508
+ * @description Include suggestions for these entity types.
2191
2509
  * @enum {string}
2192
2510
  */
2193
- type?: "work" | "agent" | "collection" | "subject";
2194
- /** @description Entities generated from catalogue records are unstable */
2511
+ entity_type?: "work" | "agent" | "collection_work" | "subject";
2512
+ /** @description Exclude or restrict to suggestions associated with unstable entities. */
2195
2513
  is_unstable?: boolean;
2196
2514
  };
2197
- SuggestionBase: {
2198
- /** @description A unique identifier for the entity represented by the suggestion. Does not always exist, e.g. if the suggestion represents several entities or an unstable entity.
2515
+ EntitySuggestionBase: {
2516
+ /** @description A unique key for the suggestion. Cannot be used as an ID elsewhere in the API, but can be used to distinguish between suggestions, for example in a suggestion list.
2517
+ * */
2518
+ key: string;
2519
+ /** @description BMDB ID of the entity this suggestion represents.
2199
2520
  * */
2200
- id?: components["schemas"]["Id"];
2201
- /** @description The text that is suggested for the user. Can be displayed in a suggestion list. Can be used to perform a search, if the intention is not to filter other entites (see `filters`) or link to the one represented by this suggestion (see `id`).
2521
+ entityId: components["schemas"]["Id"];
2522
+ /** @description The text that is suggested for the user. Can be displayed in a suggestion list. Can be used to perform a search, if the intention is not to filter other entites (see `filters`) or link to the one represented by this suggestion (see `entityId`).
2202
2523
  * */
2203
2524
  suggestedText: string;
2204
2525
  };
@@ -2207,7 +2528,6 @@ interface components {
2207
2528
  entityType: "agent";
2208
2529
  agentType: components["schemas"]["CordataEnumAgentTypeTranslated"];
2209
2530
  collectiveAgentType?: components["schemas"]["CordataEnumCollectiveAgentTypeTranslated"];
2210
- identifiers: components["schemas"]["AgentIdentifiers"];
2211
2531
  };
2212
2532
  SuggestionContributor: {
2213
2533
  agent: {
@@ -2221,71 +2541,90 @@ interface components {
2221
2541
  */
2222
2542
  roles: components["schemas"]["CordataEnumContributorRoleTranslated"][];
2223
2543
  };
2224
- SuggestionFilter: {
2544
+ EntitySuggestionFilter: {
2545
+ /** @description Filter parameter name when applying this suggestion, as in `?filter[key]=value`.
2546
+ * */
2225
2547
  key: string;
2548
+ /** @description Filter parameter value when applying this suggestion, as in `?filter[key]=value`.
2549
+ * */
2226
2550
  value: string;
2551
+ /** @description Human-readable name for the filter.
2552
+ * */
2553
+ label: string;
2554
+ };
2555
+ NonEntitySuggestionBase: {
2556
+ /** @description A unique key for the suggestion. Cannot be used as an ID elsewhere in the API, but can be used to distinguish between suggestions, for example in a suggestion list.
2557
+ * */
2558
+ key: string;
2559
+ /** @description The text that is suggested for the user. Can be displayed in a suggestion list. Can be used to perform a search, if the intention is not to filter other entites (see `filters`).
2560
+ * */
2561
+ suggestedText: string;
2562
+ };
2563
+ NonEntitySuggestionFilter: components["schemas"]["EntitySuggestionFilter"] & {
2564
+ /** @description Advanced-search query string that can filter entities. Use as `?query=...`.
2565
+ *
2566
+ * Example: `creator:"Firstname Lastname"`.
2567
+ * */
2568
+ query: string;
2227
2569
  };
2228
- Suggestion: (components["schemas"]["SuggestionBase"] & {
2570
+ /** @description Compact search-as-you-type hit. Discriminated by `type`: `WorkSuggestion`, `AgentSuggestion`, `CollectionSuggestion` or `SubjectSuggestion`. `suggestedText` is the string to show the user. Agent and subject suggestions include `filters` for a follow-up work or collection filter search.
2571
+ * */
2572
+ Suggestion: (components["schemas"]["EntitySuggestionBase"] & {
2229
2573
  /** @constant */
2230
- type: "WorkSuggestion";
2574
+ type: "WorkEntitySuggestion";
2231
2575
  /** @constant */
2232
2576
  entityType: "work";
2233
2577
  workType: components["schemas"]["CordataEnumWorkTypeTranslated"];
2234
2578
  expressionTypes: components["schemas"]["CordataEnumExpressionTypeTranslated"][];
2235
- identifiers: components["schemas"]["WorkIdentifiers"];
2236
2579
  contributors: components["schemas"]["SuggestionContributor"][];
2237
- }) | (components["schemas"]["SuggestionBase"] & {
2238
- /** @description These filters can be used to filter related entities using this suggestion. For example, if a `works` filter is provided, works can be filtered using `/works/search?filter[key]=value`. The `label` can be used when displaying the filter.
2239
- * */
2580
+ }) | (components["schemas"]["EntitySuggestionBase"] & {
2581
+ /** @constant */
2582
+ type: "AgentEntitySuggestion";
2240
2583
  filters: {
2241
- works: components["schemas"]["SuggestionFilter"];
2242
- collections: components["schemas"]["SuggestionFilter"];
2584
+ works: components["schemas"]["EntitySuggestionFilter"];
2585
+ collections: components["schemas"]["EntitySuggestionFilter"];
2243
2586
  };
2587
+ } & components["schemas"]["SuggestionAgentBase"]) | (components["schemas"]["NonEntitySuggestionBase"] & {
2244
2588
  /** @constant */
2245
- type: "AgentSuggestion";
2246
- } & components["schemas"]["SuggestionAgentBase"]) | (components["schemas"]["SuggestionBase"] & {
2589
+ type: "AgentNameSuggestion";
2590
+ filters: {
2591
+ works: components["schemas"]["NonEntitySuggestionFilter"];
2592
+ collections: components["schemas"]["NonEntitySuggestionFilter"];
2593
+ };
2594
+ } & components["schemas"]["SuggestionAgentBase"]) | (components["schemas"]["EntitySuggestionBase"] & {
2247
2595
  /** @constant */
2248
- type: "CollectionSuggestion";
2596
+ type: "CollectionEntitySuggestion";
2249
2597
  /** @constant */
2250
2598
  entityType: "collection_work";
2599
+ /** @description Kind of collection: `series` (named series), `fictional_universe` (shared fictional setting or mythos), `multipart_work` (a work issued in several parts), or `game_family` (related games).
2600
+ * */
2251
2601
  collectionType: components["schemas"]["CordataEnumCollectionTypeTranslated"];
2252
2602
  workType?: components["schemas"]["CordataEnumWorkTypeTranslated"];
2253
2603
  expressionTypes?: components["schemas"]["CordataEnumExpressionTypeTranslated"][];
2254
- identifiers: components["schemas"]["CollectionWorkIdentifiers"];
2255
2604
  contributors: components["schemas"]["SuggestionContributor"][];
2256
- }) | (components["schemas"]["SuggestionBase"] & {
2257
- /** @description These filters can be used to filter related entities using this suggestion. For example, if a `works` filter is provided, works can be filtered using `/works/search?filter[key]=value`. The `label` can be used when displaying the filter.
2258
- * */
2605
+ }) | (components["schemas"]["EntitySuggestionBase"] & {
2606
+ /** @constant */
2607
+ type: "SubjectEntitySuggestion";
2259
2608
  filters: {
2260
- works: components["schemas"]["SuggestionFilter"];
2261
- collections: components["schemas"]["SuggestionFilter"];
2609
+ works: components["schemas"]["EntitySuggestionFilter"];
2262
2610
  };
2263
2611
  /** @constant */
2264
- type: "SubjectSuggestion";
2265
- /** @constant */
2266
2612
  entityType: "subject";
2613
+ /** @description Kind of subject this suggestion represents. */
2267
2614
  subjectType: {
2268
2615
  /** @enum {string} */
2269
2616
  code: "concept" | "event" | "place" | "agent" | "work" | "collection";
2270
2617
  label: string;
2271
2618
  };
2619
+ /** @description Further specialized type. */
2272
2620
  subjectSubType?: {
2273
2621
  /** @enum {string} */
2274
2622
  code: "person" | "corporation" | "family" | "conference" | "publisher" | "music_group" | "artificial_agent";
2275
2623
  label: string;
2276
2624
  };
2277
- /** @description Map of other identifiers for the entity. */
2278
- identifiers: {
2279
- bibbiAuthorityId?: string;
2280
- /** @description Identifier from Norske emneord (NEO). */
2281
- neoUri?: string;
2282
- norafId?: string;
2283
- /** @description Unique ID assigned to an agent in Bokbasen. */
2284
- bokbasenId?: string;
2285
- /** @description International Standard Name Identifier. */
2286
- isni?: string;
2287
- };
2288
2625
  });
2626
+ /** @description Search-as-you-type suggestions. Each hit is a `Suggestion`.
2627
+ * */
2289
2628
  SearchSuggestions200Response: {
2290
2629
  results: {
2291
2630
  suggestion: components["schemas"]["Suggestion"];
@@ -2296,6 +2635,7 @@ interface components {
2296
2635
  message: string;
2297
2636
  }[];
2298
2637
  };
2638
+ /** @description Connection details for the library system that hosts this catalogue. */
2299
2639
  LibrarySystem: {
2300
2640
  /** @constant */
2301
2641
  librarySystemType: "bibliofil";
@@ -2312,24 +2652,36 @@ interface components {
2312
2652
  librarySystemType: "cicero";
2313
2653
  isilCode: string;
2314
2654
  };
2655
+ /** @description A library catalogue that contributes records to BMDB. Referenced by search profiles. */
2315
2656
  Catalogue: {
2316
2657
  id: components["schemas"]["Id"];
2658
+ /** @description Display name of the catalogue, typically the library name. */
2317
2659
  name: string;
2660
+ /** @description Metadata prefix used when harvesting this catalogue over OAI-PMH. */
2318
2661
  oaiMetadataPrefix: string;
2662
+ /** @description Optional OAI-PMH set spec used when harvesting this catalogue. */
2319
2663
  oaiPmhSet?: string;
2320
2664
  librarySystem: components["schemas"]["LibrarySystem"];
2321
2665
  };
2666
+ /** @description Scopes Cordata endpoints to a library's catalogues and configured digital services. The `global` profile has no catalogue restriction.
2667
+ * */
2322
2668
  SearchProfile: {
2669
+ /** @description Search profile identifier, used as `{searchProfile}` in other routes. */
2323
2670
  id: string;
2324
2671
  /** @constant */
2325
2672
  type: "SearchProfile";
2326
2673
  /** @constant */
2327
2674
  entityType: "search_profile";
2675
+ /** @description Library catalogues included in this search profile. */
2328
2676
  catalogues: components["schemas"]["Catalogue"][];
2677
+ /** @description Redia customer identifier for this library (optional). */
2329
2678
  rediaCustomerId?: string;
2679
+ /** @description Whether Filmoteket holdings are included in this search profile. */
2330
2680
  filmoteket?: boolean;
2681
+ /** @description Whether Cineast holdings are included in this search profile. */
2331
2682
  cineast?: boolean;
2332
2683
  };
2684
+ /** @description Search profiles matching the request. */
2333
2685
  GetSearchProfiles200Response: {
2334
2686
  results: {
2335
2687
  searchProfile: components["schemas"]["SearchProfile"];
@@ -2338,36 +2690,56 @@ interface components {
2338
2690
  };
2339
2691
  responses: never;
2340
2692
  parameters: {
2341
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
2693
+ /** @description Experimental feature flags. May be removed without notice.
2342
2694
  * */
2343
2695
  FeatureFlagParameter: "noop"[];
2344
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
2696
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
2697
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2345
2698
  * */
2346
2699
  UiLanguageParameter: "nb" | "nn";
2347
- /** @description The search query. */
2700
+ /**
2701
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
2702
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
2703
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
2704
+ * lists the problems.
2705
+ *
2706
+ * @example bølgene
2707
+ */
2348
2708
  QueryParameter: string;
2349
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
2709
+ /** @description Comma-separated IDs to fetch.
2350
2710
  * */
2351
2711
  IdsParameter: string;
2352
- /** @description Page number (default 1). */
2712
+ /** @description Page number, starting at 1 (default 1).
2713
+ * Use a harvest endpoint for larger result sets.
2714
+ * */
2353
2715
  PageParameter: number;
2354
- /** @description Page size (default 10).
2355
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2356
- * This is important to consider in any product design.
2716
+ /** @description Page size (default 10, maximum 100).
2717
+ * Use a harvest endpoint for larger result sets.
2357
2718
  * */
2358
2719
  SizeParameter: number;
2359
- /** @description Return this number of facet terms for each requested facet (default 10). */
2720
+ /** @description Number of terms to return for each requested facet (default 10, maximum 500).
2721
+ * */
2360
2722
  FacetTermsSizeParameter: number;
2361
2723
  /**
2362
- * @description Timestamp to start harvesting from. Format: ISO 8601 datetime with UTC timezone. Cannot be used together with `resumptionToken`.
2724
+ * @description Inclusive start of the harvest window. ISO 8601 datetime with UTC offset
2725
+ * (for example `2024-01-01T00:00:00Z`). Cannot be combined with `resumptionToken`.
2363
2726
  *
2364
2727
  * @example 2024-01-01T00:00:00Z
2365
2728
  */
2366
2729
  HarvestFromParameter: string;
2367
- /** @description Used to resume a harvest. Cannot be used together with `from`. */
2730
+ /**
2731
+ * @description Opaque token from a previous harvest response. Repeat the request with this token
2732
+ * to fetch the next batch. Cannot be combined with `from`.
2733
+ *
2734
+ * @example eyJzZWFyY2hBZnRlciI6WyIyMDI0LTAxLTAyVDAwOjAwOjAwLjAwMFoiXX0
2735
+ */
2368
2736
  ResumptionTokenParameter: string;
2369
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2370
- * */
2737
+ /**
2738
+ * @description Search profile that scopes results to a library's catalogues and digital services.
2739
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
2740
+ *
2741
+ * @example global
2742
+ */
2371
2743
  SearchProfileParameter: string;
2372
2744
  };
2373
2745
  requestBodies: never;
@@ -2378,43 +2750,85 @@ interface operations {
2378
2750
  searchWorks: {
2379
2751
  parameters: {
2380
2752
  query?: {
2381
- /** @description The search query. */
2753
+ /**
2754
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
2755
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
2756
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
2757
+ * lists the problems.
2758
+ *
2759
+ * @example bølgene
2760
+ */
2382
2761
  query?: components["parameters"]["QueryParameter"];
2383
- /** @description Page size (default 10).
2384
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2385
- * This is important to consider in any product design.
2762
+ /** @description Page size (default 10, maximum 100).
2763
+ * Use a harvest endpoint for larger result sets.
2386
2764
  * */
2387
2765
  size?: components["parameters"]["SizeParameter"];
2388
- /** @description Page number (default 1). */
2389
- page?: components["parameters"]["PageParameter"];
2390
- /** @description The filters are AND'ed together.
2391
- * These filters support multiple comma-separated values that are OR'ed together:
2392
- * `id`, `work_id`, `identifier`, `work_type`, `expression_type`, `manifestation_medium`, `creator`, `subject`, `language`, `original_language`, `form`, `genre`, `age_limit`, `age_group`, `grep_subject`, `literature_type`, `instrumentation`
2766
+ /** @description Page number, starting at 1 (default 1).
2767
+ * Use a harvest endpoint for larger result sets.
2393
2768
  * */
2769
+ page?: components["parameters"]["PageParameter"];
2770
+ /**
2771
+ * @description Deep-object filters (`filter[work_type]=LiteraryWork`). All supplied filters are
2772
+ * AND'ed together.
2773
+ *
2774
+ * These filters accept multiple comma-separated values that are OR'ed together:
2775
+ * `id`, `work_id`, `identifier`, `work_type`, `expression_type`, `manifestation_medium`,
2776
+ * `creator`, `subject`, `language`, `original_language`, `form`, `genre`, `age_limit`,
2777
+ * `age_group`, `grep_subject`, `literature_type`, `instrumentation`.
2778
+ *
2779
+ * Other filters take a single value. Boolean filters (`kulturfond`, `is_short_work`,
2780
+ * `is_not_short_work`, `is_aggregating_work`) use `true` or `false`.
2781
+ * `age_range` uses `from:to` (either bound may be omitted), for example `6:12` or `:16`.
2782
+ * `contributor_with_role` uses `{agentId}/role={roleCode}`.
2783
+ *
2784
+ * @example {
2785
+ * "literature_type": "skjønnlitteratur",
2786
+ * "language": "nob"
2787
+ * }
2788
+ */
2394
2789
  filter?: components["schemas"]["WorkSearchFilterType"];
2395
- /** @description Sorting */
2790
+ /**
2791
+ * @description Sort order. Defaults to `relevance.desc` when `query` is set, otherwise
2792
+ * `publicationDate.desc`.
2793
+ *
2794
+ * @example relevance.desc
2795
+ */
2396
2796
  sort?: components["schemas"]["WorkSearchSortType"];
2797
+ /**
2798
+ * @description Facet types to include in the response. Comma-separated.
2799
+ *
2800
+ * @example [
2801
+ * "work_type",
2802
+ * "genre"
2803
+ * ]
2804
+ */
2397
2805
  facet?: components["schemas"]["WorkSearchFacetType"][];
2398
- /** @description Return this number of facet terms for each requested facet (default 10). */
2806
+ /** @description Number of terms to return for each requested facet (default 10, maximum 500).
2807
+ * */
2399
2808
  facet_terms_size?: components["parameters"]["FacetTermsSizeParameter"];
2400
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
2809
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
2810
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2401
2811
  * */
2402
2812
  ui_language?: components["parameters"]["UiLanguageParameter"];
2403
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
2813
+ /** @description Experimental feature flags. May be removed without notice.
2404
2814
  * */
2405
2815
  ft?: components["parameters"]["FeatureFlagParameter"];
2406
2816
  };
2407
2817
  header?: never;
2408
2818
  path: {
2409
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2410
- * */
2819
+ /**
2820
+ * @description Search profile that scopes results to a library's catalogues and digital services.
2821
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
2822
+ *
2823
+ * @example global
2824
+ */
2411
2825
  searchProfile: components["parameters"]["SearchProfileParameter"];
2412
2826
  };
2413
2827
  cookie?: never;
2414
2828
  };
2415
2829
  requestBody?: never;
2416
2830
  responses: {
2417
- /** @description List of works */
2831
+ /** @description Paginated work search results with optional facets. */
2418
2832
  200: {
2419
2833
  headers: {
2420
2834
  [name: string]: unknown;
@@ -2446,27 +2860,32 @@ interface operations {
2446
2860
  getWorks: {
2447
2861
  parameters: {
2448
2862
  query: {
2449
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
2863
+ /** @description Comma-separated IDs to fetch.
2450
2864
  * */
2451
2865
  ids: components["parameters"]["IdsParameter"];
2452
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
2866
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
2867
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2453
2868
  * */
2454
2869
  ui_language?: components["parameters"]["UiLanguageParameter"];
2455
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
2870
+ /** @description Experimental feature flags. May be removed without notice.
2456
2871
  * */
2457
2872
  ft?: components["parameters"]["FeatureFlagParameter"];
2458
2873
  };
2459
2874
  header?: never;
2460
2875
  path: {
2461
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2462
- * */
2876
+ /**
2877
+ * @description Search profile that scopes results to a library's catalogues and digital services.
2878
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
2879
+ *
2880
+ * @example global
2881
+ */
2463
2882
  searchProfile: components["parameters"]["SearchProfileParameter"];
2464
2883
  };
2465
2884
  cookie?: never;
2466
2885
  };
2467
2886
  requestBody?: never;
2468
2887
  responses: {
2469
- /** @description List of works */
2888
+ /** @description Full work records for the requested IDs. */
2470
2889
  200: {
2471
2890
  headers: {
2472
2891
  [name: string]: unknown;
@@ -2498,32 +2917,43 @@ interface operations {
2498
2917
  harvestWorks: {
2499
2918
  parameters: {
2500
2919
  query?: {
2501
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
2920
+ /** @description Experimental feature flags. May be removed without notice.
2502
2921
  * */
2503
2922
  ft?: components["parameters"]["FeatureFlagParameter"];
2504
2923
  /**
2505
- * @description Timestamp to start harvesting from. Format: ISO 8601 datetime with UTC timezone. Cannot be used together with `resumptionToken`.
2924
+ * @description Inclusive start of the harvest window. ISO 8601 datetime with UTC offset
2925
+ * (for example `2024-01-01T00:00:00Z`). Cannot be combined with `resumptionToken`.
2506
2926
  *
2507
2927
  * @example 2024-01-01T00:00:00Z
2508
2928
  */
2509
2929
  from?: components["parameters"]["HarvestFromParameter"];
2510
- /** @description Used to resume a harvest. Cannot be used together with `from`. */
2930
+ /**
2931
+ * @description Opaque token from a previous harvest response. Repeat the request with this token
2932
+ * to fetch the next batch. Cannot be combined with `from`.
2933
+ *
2934
+ * @example eyJzZWFyY2hBZnRlciI6WyIyMDI0LTAxLTAyVDAwOjAwOjAwLjAwMFoiXX0
2935
+ */
2511
2936
  resumptionToken?: components["parameters"]["ResumptionTokenParameter"];
2512
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
2937
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
2938
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2513
2939
  * */
2514
2940
  ui_language?: components["parameters"]["UiLanguageParameter"];
2515
2941
  };
2516
2942
  header?: never;
2517
2943
  path: {
2518
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2519
- * */
2944
+ /**
2945
+ * @description Search profile that scopes results to a library's catalogues and digital services.
2946
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
2947
+ *
2948
+ * @example global
2949
+ */
2520
2950
  searchProfile: components["parameters"]["SearchProfileParameter"];
2521
2951
  };
2522
2952
  cookie?: never;
2523
2953
  };
2524
2954
  requestBody?: never;
2525
2955
  responses: {
2526
- /** @description List of works */
2956
+ /** @description A batch of full work records, with `resumptionToken` when more remain. */
2527
2957
  200: {
2528
2958
  headers: {
2529
2959
  [name: string]: unknown;
@@ -2532,37 +2962,73 @@ interface operations {
2532
2962
  "application/json": components["schemas"]["HarvestWorks200Response"];
2533
2963
  };
2534
2964
  };
2965
+ /** @description Invalid or unparseable `resumptionToken`. */
2966
+ 400: {
2967
+ headers: {
2968
+ [name: string]: unknown;
2969
+ };
2970
+ content?: never;
2971
+ };
2972
+ /** @description Search profile not found */
2973
+ 404: {
2974
+ headers: {
2975
+ [name: string]: unknown;
2976
+ };
2977
+ content: {
2978
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
2979
+ };
2980
+ };
2981
+ /** @description Request validation error */
2982
+ 422: {
2983
+ headers: {
2984
+ [name: string]: unknown;
2985
+ };
2986
+ content: {
2987
+ "application/problem+json": components["schemas"]["RequestValidationError"];
2988
+ };
2989
+ };
2535
2990
  };
2536
2991
  };
2537
2992
  harvestWorkIds: {
2538
2993
  parameters: {
2539
2994
  query?: {
2540
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
2995
+ /** @description Experimental feature flags. May be removed without notice.
2541
2996
  * */
2542
2997
  ft?: components["parameters"]["FeatureFlagParameter"];
2543
2998
  /**
2544
- * @description Timestamp to start harvesting from. Format: ISO 8601 datetime with UTC timezone. Cannot be used together with `resumptionToken`.
2999
+ * @description Inclusive start of the harvest window. ISO 8601 datetime with UTC offset
3000
+ * (for example `2024-01-01T00:00:00Z`). Cannot be combined with `resumptionToken`.
2545
3001
  *
2546
3002
  * @example 2024-01-01T00:00:00Z
2547
3003
  */
2548
3004
  from?: components["parameters"]["HarvestFromParameter"];
2549
- /** @description Used to resume a harvest. Cannot be used together with `from`. */
3005
+ /**
3006
+ * @description Opaque token from a previous harvest response. Repeat the request with this token
3007
+ * to fetch the next batch. Cannot be combined with `from`.
3008
+ *
3009
+ * @example eyJzZWFyY2hBZnRlciI6WyIyMDI0LTAxLTAyVDAwOjAwOjAwLjAwMFoiXX0
3010
+ */
2550
3011
  resumptionToken?: components["parameters"]["ResumptionTokenParameter"];
2551
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3012
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3013
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2552
3014
  * */
2553
3015
  ui_language?: components["parameters"]["UiLanguageParameter"];
2554
3016
  };
2555
3017
  header?: never;
2556
3018
  path: {
2557
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2558
- * */
3019
+ /**
3020
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3021
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3022
+ *
3023
+ * @example global
3024
+ */
2559
3025
  searchProfile: components["parameters"]["SearchProfileParameter"];
2560
3026
  };
2561
3027
  cookie?: never;
2562
3028
  };
2563
3029
  requestBody?: never;
2564
3030
  responses: {
2565
- /** @description List of work IDs */
3031
+ /** @description A batch of work IDs, with `resumptionToken` when more remain. */
2566
3032
  200: {
2567
3033
  headers: {
2568
3034
  [name: string]: unknown;
@@ -2571,47 +3037,91 @@ interface operations {
2571
3037
  "application/json": components["schemas"]["HarvestWorkIds200Response"];
2572
3038
  };
2573
3039
  };
3040
+ /** @description Invalid or unparseable `resumptionToken`. */
3041
+ 400: {
3042
+ headers: {
3043
+ [name: string]: unknown;
3044
+ };
3045
+ content?: never;
3046
+ };
3047
+ /** @description Search profile not found */
3048
+ 404: {
3049
+ headers: {
3050
+ [name: string]: unknown;
3051
+ };
3052
+ content: {
3053
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3054
+ };
3055
+ };
3056
+ /** @description Request validation error */
3057
+ 422: {
3058
+ headers: {
3059
+ [name: string]: unknown;
3060
+ };
3061
+ content: {
3062
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3063
+ };
3064
+ };
2574
3065
  };
2575
3066
  };
2576
3067
  searchAgents: {
2577
3068
  parameters: {
2578
3069
  query?: {
2579
- /** @description The search query. */
3070
+ /**
3071
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
3072
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
3073
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
3074
+ * lists the problems.
3075
+ *
3076
+ * @example bølgene
3077
+ */
2580
3078
  query?: components["parameters"]["QueryParameter"];
2581
- /** @description Page size (default 10).
2582
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2583
- * This is important to consider in any product design.
3079
+ /** @description Page size (default 10, maximum 100).
3080
+ * Use a harvest endpoint for larger result sets.
2584
3081
  * */
2585
3082
  size?: components["parameters"]["SizeParameter"];
2586
- /** @description Page number (default 1). */
3083
+ /** @description Page number, starting at 1 (default 1).
3084
+ * Use a harvest endpoint for larger result sets.
3085
+ * */
2587
3086
  page?: components["parameters"]["PageParameter"];
2588
- /** @description The filters are AND'ed together.
2589
- * All filters support multiple comma-separated values that are OR'ed together except `catalogue`.
3087
+ /** @description Deep-object filters (`filter[nationality]=n`). All supplied filters are AND'ed
3088
+ * together. All filters except `catalogue` accept multiple comma-separated values
3089
+ * that are OR'ed together.
2590
3090
  * */
2591
3091
  filter?: components["schemas"]["AgentSearchFilterType"];
2592
- /** @description Sorting */
3092
+ /** @description Sort order. Defaults to `relevance.desc` when `query` is set, otherwise
3093
+ * `updateTime.desc`.
3094
+ * */
2593
3095
  sort?: components["schemas"]["AgentSearchSortType"];
3096
+ /** @description Facet types to include in the response. Comma-separated.
3097
+ * */
2594
3098
  facet?: components["schemas"]["AgentSearchFacetType"][];
2595
- /** @description Return this number of facet terms for each requested facet (default 10). */
3099
+ /** @description Number of terms to return for each requested facet (default 10, maximum 500).
3100
+ * */
2596
3101
  facet_terms_size?: components["parameters"]["FacetTermsSizeParameter"];
2597
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3102
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3103
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2598
3104
  * */
2599
3105
  ui_language?: components["parameters"]["UiLanguageParameter"];
2600
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
3106
+ /** @description Experimental feature flags. May be removed without notice.
2601
3107
  * */
2602
3108
  ft?: components["parameters"]["FeatureFlagParameter"];
2603
3109
  };
2604
3110
  header?: never;
2605
3111
  path: {
2606
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2607
- * */
3112
+ /**
3113
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3114
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3115
+ *
3116
+ * @example global
3117
+ */
2608
3118
  searchProfile: components["parameters"]["SearchProfileParameter"];
2609
3119
  };
2610
3120
  cookie?: never;
2611
3121
  };
2612
3122
  requestBody?: never;
2613
3123
  responses: {
2614
- /** @description List of agents */
3124
+ /** @description Paginated agent search results with optional facets. */
2615
3125
  200: {
2616
3126
  headers: {
2617
3127
  [name: string]: unknown;
@@ -2620,29 +3130,52 @@ interface operations {
2620
3130
  "application/json": components["schemas"]["SearchAgents200Response"];
2621
3131
  };
2622
3132
  };
3133
+ /** @description Search profile not found */
3134
+ 404: {
3135
+ headers: {
3136
+ [name: string]: unknown;
3137
+ };
3138
+ content: {
3139
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3140
+ };
3141
+ };
3142
+ /** @description Request validation error */
3143
+ 422: {
3144
+ headers: {
3145
+ [name: string]: unknown;
3146
+ };
3147
+ content: {
3148
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3149
+ };
3150
+ };
2623
3151
  };
2624
3152
  };
2625
3153
  getAgents: {
2626
3154
  parameters: {
2627
3155
  query: {
2628
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
3156
+ /** @description Comma-separated IDs to fetch.
2629
3157
  * */
2630
3158
  ids: components["parameters"]["IdsParameter"];
2631
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3159
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3160
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2632
3161
  * */
2633
3162
  ui_language?: components["parameters"]["UiLanguageParameter"];
2634
3163
  };
2635
3164
  header?: never;
2636
3165
  path: {
2637
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2638
- * */
3166
+ /**
3167
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3168
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3169
+ *
3170
+ * @example global
3171
+ */
2639
3172
  searchProfile: components["parameters"]["SearchProfileParameter"];
2640
3173
  };
2641
3174
  cookie?: never;
2642
3175
  };
2643
3176
  requestBody?: never;
2644
3177
  responses: {
2645
- /** @description List of agents */
3178
+ /** @description Full agent records for the requested IDs. */
2646
3179
  200: {
2647
3180
  headers: {
2648
3181
  [name: string]: unknown;
@@ -2651,47 +3184,84 @@ interface operations {
2651
3184
  "application/json": components["schemas"]["GetAgents200Response"];
2652
3185
  };
2653
3186
  };
3187
+ /** @description Search profile not found */
3188
+ 404: {
3189
+ headers: {
3190
+ [name: string]: unknown;
3191
+ };
3192
+ content: {
3193
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3194
+ };
3195
+ };
3196
+ /** @description Request validation error */
3197
+ 422: {
3198
+ headers: {
3199
+ [name: string]: unknown;
3200
+ };
3201
+ content: {
3202
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3203
+ };
3204
+ };
2654
3205
  };
2655
3206
  };
2656
3207
  searchCollections: {
2657
3208
  parameters: {
2658
3209
  query?: {
2659
- /** @description The search query. */
3210
+ /**
3211
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
3212
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
3213
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
3214
+ * lists the problems.
3215
+ *
3216
+ * @example bølgene
3217
+ */
2660
3218
  query?: components["parameters"]["QueryParameter"];
2661
- /** @description Page size (default 10).
2662
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2663
- * This is important to consider in any product design.
3219
+ /** @description Page size (default 10, maximum 100).
3220
+ * Use a harvest endpoint for larger result sets.
2664
3221
  * */
2665
3222
  size?: components["parameters"]["SizeParameter"];
2666
- /** @description Page number (default 1). */
3223
+ /** @description Page number, starting at 1 (default 1).
3224
+ * Use a harvest endpoint for larger result sets.
3225
+ * */
2667
3226
  page?: components["parameters"]["PageParameter"];
2668
- /** @description The filters are AND'ed together.
2669
- * All filters support multiple comma-separated values that are OR'ed together except `catalogue`.
3227
+ /** @description Deep-object filters (`filter[collection_type]=series`). All supplied filters are
3228
+ * AND'ed together. All filters except `catalogue` accept multiple comma-separated
3229
+ * values that are OR'ed together.
2670
3230
  * */
2671
3231
  filter?: components["schemas"]["CollectionSearchFilterType"];
2672
- /** @description Sorting */
3232
+ /** @description Sort order. Defaults to `relevance.desc` when `query` is set, otherwise
3233
+ * `updateTime.desc`.
3234
+ * */
2673
3235
  sort?: components["schemas"]["CollectionSearchSortType"];
3236
+ /** @description Facet types to include in the response. Comma-separated.
3237
+ * */
2674
3238
  facet?: components["schemas"]["CollectionSearchFacetType"][];
2675
- /** @description Return this number of facet terms for each requested facet (default 10). */
3239
+ /** @description Number of terms to return for each requested facet (default 10, maximum 500).
3240
+ * */
2676
3241
  facet_terms_size?: components["parameters"]["FacetTermsSizeParameter"];
2677
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3242
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3243
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2678
3244
  * */
2679
3245
  ui_language?: components["parameters"]["UiLanguageParameter"];
2680
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
3246
+ /** @description Experimental feature flags. May be removed without notice.
2681
3247
  * */
2682
3248
  ft?: components["parameters"]["FeatureFlagParameter"];
2683
3249
  };
2684
3250
  header?: never;
2685
3251
  path: {
2686
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2687
- * */
3252
+ /**
3253
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3254
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3255
+ *
3256
+ * @example global
3257
+ */
2688
3258
  searchProfile: components["parameters"]["SearchProfileParameter"];
2689
3259
  };
2690
3260
  cookie?: never;
2691
3261
  };
2692
3262
  requestBody?: never;
2693
3263
  responses: {
2694
- /** @description List of collections */
3264
+ /** @description Paginated collection search results with optional facets. */
2695
3265
  200: {
2696
3266
  headers: {
2697
3267
  [name: string]: unknown;
@@ -2700,29 +3270,52 @@ interface operations {
2700
3270
  "application/json": components["schemas"]["SearchCollections200Response"];
2701
3271
  };
2702
3272
  };
3273
+ /** @description Search profile not found */
3274
+ 404: {
3275
+ headers: {
3276
+ [name: string]: unknown;
3277
+ };
3278
+ content: {
3279
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3280
+ };
3281
+ };
3282
+ /** @description Request validation error */
3283
+ 422: {
3284
+ headers: {
3285
+ [name: string]: unknown;
3286
+ };
3287
+ content: {
3288
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3289
+ };
3290
+ };
2703
3291
  };
2704
3292
  };
2705
3293
  getCollections: {
2706
3294
  parameters: {
2707
3295
  query: {
2708
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
3296
+ /** @description Comma-separated IDs to fetch.
2709
3297
  * */
2710
3298
  ids: components["parameters"]["IdsParameter"];
2711
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3299
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3300
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2712
3301
  * */
2713
3302
  ui_language?: components["parameters"]["UiLanguageParameter"];
2714
3303
  };
2715
3304
  header?: never;
2716
3305
  path: {
2717
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2718
- * */
3306
+ /**
3307
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3308
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3309
+ *
3310
+ * @example global
3311
+ */
2719
3312
  searchProfile: components["parameters"]["SearchProfileParameter"];
2720
3313
  };
2721
3314
  cookie?: never;
2722
3315
  };
2723
3316
  requestBody?: never;
2724
3317
  responses: {
2725
- /** @description List of collections */
3318
+ /** @description Full collection records for the requested IDs. */
2726
3319
  200: {
2727
3320
  headers: {
2728
3321
  [name: string]: unknown;
@@ -2731,47 +3324,84 @@ interface operations {
2731
3324
  "application/json": components["schemas"]["GetCollections200Response"];
2732
3325
  };
2733
3326
  };
3327
+ /** @description Search profile not found */
3328
+ 404: {
3329
+ headers: {
3330
+ [name: string]: unknown;
3331
+ };
3332
+ content: {
3333
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3334
+ };
3335
+ };
3336
+ /** @description Request validation error */
3337
+ 422: {
3338
+ headers: {
3339
+ [name: string]: unknown;
3340
+ };
3341
+ content: {
3342
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3343
+ };
3344
+ };
2734
3345
  };
2735
3346
  };
2736
3347
  searchSubjects: {
2737
3348
  parameters: {
2738
3349
  query?: {
2739
- /** @description The search query. */
3350
+ /**
3351
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
3352
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
3353
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
3354
+ * lists the problems.
3355
+ *
3356
+ * @example bølgene
3357
+ */
2740
3358
  query?: components["parameters"]["QueryParameter"];
2741
- /** @description Page size (default 10).
2742
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2743
- * This is important to consider in any product design.
3359
+ /** @description Page size (default 10, maximum 100).
3360
+ * Use a harvest endpoint for larger result sets.
2744
3361
  * */
2745
3362
  size?: components["parameters"]["SizeParameter"];
2746
- /** @description Page number (default 1). */
3363
+ /** @description Page number, starting at 1 (default 1).
3364
+ * Use a harvest endpoint for larger result sets.
3365
+ * */
2747
3366
  page?: components["parameters"]["PageParameter"];
2748
- /** @description The filters are AND'ed together.
2749
- * All filters support multiple comma-separated values that are OR'ed together except `catalogue`.
3367
+ /** @description Deep-object filters (`filter[type]=concept`). All supplied filters are AND'ed
3368
+ * together. All filters except `catalogue` accept multiple comma-separated values
3369
+ * that are OR'ed together.
2750
3370
  * */
2751
3371
  filter?: components["schemas"]["SubjectSearchFilterType"];
2752
- /** @description Sorting */
3372
+ /** @description Sort order. Defaults to `relevance.desc` when `query` is set, otherwise
3373
+ * `updateTime.desc`.
3374
+ * */
2753
3375
  sort?: components["schemas"]["SubjectSearchSortType"];
3376
+ /** @description Facet types to include in the response. Comma-separated.
3377
+ * */
2754
3378
  facet?: components["schemas"]["SubjectSearchFacetType"][];
2755
- /** @description Return this number of facet terms for each requested facet (default 10). */
3379
+ /** @description Number of terms to return for each requested facet (default 10, maximum 500).
3380
+ * */
2756
3381
  facet_terms_size?: components["parameters"]["FacetTermsSizeParameter"];
2757
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3382
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3383
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2758
3384
  * */
2759
3385
  ui_language?: components["parameters"]["UiLanguageParameter"];
2760
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
3386
+ /** @description Experimental feature flags. May be removed without notice.
2761
3387
  * */
2762
3388
  ft?: components["parameters"]["FeatureFlagParameter"];
2763
3389
  };
2764
3390
  header?: never;
2765
3391
  path: {
2766
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2767
- * */
3392
+ /**
3393
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3394
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3395
+ *
3396
+ * @example global
3397
+ */
2768
3398
  searchProfile: components["parameters"]["SearchProfileParameter"];
2769
3399
  };
2770
3400
  cookie?: never;
2771
3401
  };
2772
3402
  requestBody?: never;
2773
3403
  responses: {
2774
- /** @description List of subjects */
3404
+ /** @description Paginated subject search results with optional facets. */
2775
3405
  200: {
2776
3406
  headers: {
2777
3407
  [name: string]: unknown;
@@ -2780,29 +3410,52 @@ interface operations {
2780
3410
  "application/json": components["schemas"]["SearchSubjects200Response"];
2781
3411
  };
2782
3412
  };
3413
+ /** @description Search profile not found */
3414
+ 404: {
3415
+ headers: {
3416
+ [name: string]: unknown;
3417
+ };
3418
+ content: {
3419
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3420
+ };
3421
+ };
3422
+ /** @description Request validation error */
3423
+ 422: {
3424
+ headers: {
3425
+ [name: string]: unknown;
3426
+ };
3427
+ content: {
3428
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3429
+ };
3430
+ };
2783
3431
  };
2784
3432
  };
2785
3433
  getSubjects: {
2786
3434
  parameters: {
2787
3435
  query: {
2788
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
3436
+ /** @description Comma-separated IDs to fetch.
2789
3437
  * */
2790
3438
  ids: components["parameters"]["IdsParameter"];
2791
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3439
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3440
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2792
3441
  * */
2793
3442
  ui_language?: components["parameters"]["UiLanguageParameter"];
2794
3443
  };
2795
3444
  header?: never;
2796
3445
  path: {
2797
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2798
- * */
3446
+ /**
3447
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3448
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3449
+ *
3450
+ * @example global
3451
+ */
2799
3452
  searchProfile: components["parameters"]["SearchProfileParameter"];
2800
3453
  };
2801
3454
  cookie?: never;
2802
3455
  };
2803
3456
  requestBody?: never;
2804
3457
  responses: {
2805
- /** @description List of subjects */
3458
+ /** @description Full subject records for the requested IDs. */
2806
3459
  200: {
2807
3460
  headers: {
2808
3461
  [name: string]: unknown;
@@ -2811,32 +3464,55 @@ interface operations {
2811
3464
  "application/json": components["schemas"]["GetSubjects200Response"];
2812
3465
  };
2813
3466
  };
3467
+ /** @description Search profile not found */
3468
+ 404: {
3469
+ headers: {
3470
+ [name: string]: unknown;
3471
+ };
3472
+ content: {
3473
+ "application/problem+json": components["schemas"]["SearchProfileNotFoundError"];
3474
+ };
3475
+ };
3476
+ /** @description Request validation error */
3477
+ 422: {
3478
+ headers: {
3479
+ [name: string]: unknown;
3480
+ };
3481
+ content: {
3482
+ "application/problem+json": components["schemas"]["RequestValidationError"];
3483
+ };
3484
+ };
2814
3485
  };
2815
3486
  };
2816
3487
  getCatalogueRecords: {
2817
3488
  parameters: {
2818
3489
  query: {
2819
- /** @description Comma-separated IDs. Accepts different formats where appropriate.
3490
+ /** @description Comma-separated IDs to fetch.
2820
3491
  * */
2821
3492
  ids: components["parameters"]["IdsParameter"];
2822
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3493
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3494
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2823
3495
  * */
2824
3496
  ui_language?: components["parameters"]["UiLanguageParameter"];
2825
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
3497
+ /** @description Experimental feature flags. May be removed without notice.
2826
3498
  * */
2827
3499
  ft?: components["parameters"]["FeatureFlagParameter"];
2828
3500
  };
2829
3501
  header?: never;
2830
3502
  path: {
2831
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2832
- * */
3503
+ /**
3504
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3505
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3506
+ *
3507
+ * @example global
3508
+ */
2833
3509
  searchProfile: components["parameters"]["SearchProfileParameter"];
2834
3510
  };
2835
3511
  cookie?: never;
2836
3512
  };
2837
3513
  requestBody?: never;
2838
3514
  responses: {
2839
- /** @description List of catalogue records expressed using Cordata entities. */
3515
+ /** @description Catalogue records for the requested IDs, expressed as Cordata entities. */
2840
3516
  200: {
2841
3517
  headers: {
2842
3518
  [name: string]: unknown;
@@ -2868,36 +3544,47 @@ interface operations {
2868
3544
  searchSuggestions: {
2869
3545
  parameters: {
2870
3546
  query?: {
2871
- /** @description The search query. */
3547
+ /**
3548
+ * @description Free-text search query. When omitted, results are still returned using the endpoint's
3549
+ * default sort. Phrase and advanced query syntax are supported; if an advanced query
3550
+ * cannot be parsed, the request falls back to a standard search and `advancedQueryErrors`
3551
+ * lists the problems.
3552
+ *
3553
+ * @example bølgene
3554
+ */
2872
3555
  query?: components["parameters"]["QueryParameter"];
2873
- /** @description Page size (default 10).
2874
- * It's important to be aware that, the page size here is only a preferred page size, the result set can be both small and greater, depending on the implementation from the LMS provider.
2875
- * This is important to consider in any product design.
3556
+ /** @description Page size (default 10, maximum 100).
3557
+ * Use a harvest endpoint for larger result sets.
2876
3558
  * */
2877
3559
  size?: components["parameters"]["SizeParameter"];
2878
- /** @description The filters are AND'ed together.
2879
- * These filters support multiple comma-separated values that are OR'ed together:
2880
- * `type`
3560
+ /** @description Deep-object filters. All supplied filters are AND'ed together.
3561
+ * `entity_type` accepts multiple comma-separated values that are OR'ed together
3562
+ * (`work`, `agent`, `collection`, `subject`).
2881
3563
  * */
2882
3564
  filter?: components["schemas"]["SuggestionSearchFilterType"];
2883
- /** @description The UI language determines the language of human-readable labels and descriptions in the API responses.
3565
+ /** @description Language of human-readable labels in the response (`nb` Bokmål, `nn` Nynorsk).
3566
+ * Codes, IDs and structure are unaffected. Defaults to `nb`.
2884
3567
  * */
2885
3568
  ui_language?: components["parameters"]["UiLanguageParameter"];
2886
- /** @description Feature flags for enabling or disabling experimental features in the API. These flags are intended for testing and may be removed without notice.
3569
+ /** @description Experimental feature flags. May be removed without notice.
2887
3570
  * */
2888
3571
  ft?: components["parameters"]["FeatureFlagParameter"];
2889
3572
  };
2890
3573
  header?: never;
2891
3574
  path: {
2892
- /** @description The search profile defines the scope of the search. Each library has their own search profile. A special search profile called "global" is available for searching across all libraries.
2893
- * */
3575
+ /**
3576
+ * @description Search profile that scopes results to a library's catalogues and digital services.
3577
+ * Use `global` to search across all libraries. List profiles with `GET /search-profiles`.
3578
+ *
3579
+ * @example global
3580
+ */
2894
3581
  searchProfile: components["parameters"]["SearchProfileParameter"];
2895
3582
  };
2896
3583
  cookie?: never;
2897
3584
  };
2898
3585
  requestBody?: never;
2899
3586
  responses: {
2900
- /** @description List of suggestions */
3587
+ /** @description Search-as-you-type suggestions matching the query. */
2901
3588
  200: {
2902
3589
  headers: {
2903
3590
  [name: string]: unknown;
@@ -2929,7 +3616,11 @@ interface operations {
2929
3616
  getSearchProfiles: {
2930
3617
  parameters: {
2931
3618
  query?: {
2932
- /** @description Comma-separated search profile IDs. */
3619
+ /**
3620
+ * @description Comma-separated search profile IDs. Omit to return all profiles.
3621
+ *
3622
+ * @example global
3623
+ */
2933
3624
  ids?: string;
2934
3625
  };
2935
3626
  header?: never;
@@ -2938,7 +3629,7 @@ interface operations {
2938
3629
  };
2939
3630
  requestBody?: never;
2940
3631
  responses: {
2941
- /** @description List of search profiles */
3632
+ /** @description Search profiles matching the request. */
2942
3633
  200: {
2943
3634
  headers: {
2944
3635
  [name: string]: unknown;
@@ -3061,6 +3752,18 @@ declare const cordataEnumWorkTypeMap: {
3061
3752
  readonly domain: "cordata";
3062
3753
  readonly type: "work_type";
3063
3754
  };
3755
+ readonly tabletop_game: {
3756
+ readonly code: "tabletop_game";
3757
+ readonly name: "brettspillverk";
3758
+ readonly preferred_name: {
3759
+ readonly nb: "brettspillverk";
3760
+ readonly nn: "brettspelverk";
3761
+ readonly en: "tabletop game work";
3762
+ };
3763
+ readonly comments: null;
3764
+ readonly domain: "cordata";
3765
+ readonly type: "work_type";
3766
+ };
3064
3767
  readonly cartographic: {
3065
3768
  readonly code: "cartographic";
3066
3769
  readonly name: "kartografisk verk";
@@ -4585,6 +5288,171 @@ declare const cordataEnumAgeLimitMap: {
4585
5288
  readonly nbvok_uri: "https://schema.nb.no/Bibliographic/Values/PG1004";
4586
5289
  readonly type: "age_limit";
4587
5290
  };
5291
+ readonly ttg4: {
5292
+ readonly code: "ttg4";
5293
+ readonly name: "4+";
5294
+ readonly preferred_name: {
5295
+ readonly nb: "4+";
5296
+ readonly nn: "4+";
5297
+ readonly en: "4+";
5298
+ };
5299
+ readonly comments: null;
5300
+ readonly domain: "cordata";
5301
+ readonly age_limit_type: "tabletop_game";
5302
+ readonly years: 4;
5303
+ readonly nbvok_uri: null;
5304
+ readonly type: "age_limit";
5305
+ };
5306
+ readonly ttg5: {
5307
+ readonly code: "ttg5";
5308
+ readonly name: "5+";
5309
+ readonly preferred_name: {
5310
+ readonly nb: "5+";
5311
+ readonly nn: "5+";
5312
+ readonly en: "5+";
5313
+ };
5314
+ readonly comments: null;
5315
+ readonly domain: "cordata";
5316
+ readonly age_limit_type: "tabletop_game";
5317
+ readonly years: 5;
5318
+ readonly nbvok_uri: null;
5319
+ readonly type: "age_limit";
5320
+ };
5321
+ readonly ttg6: {
5322
+ readonly code: "ttg6";
5323
+ readonly name: "6+";
5324
+ readonly preferred_name: {
5325
+ readonly nb: "6+";
5326
+ readonly nn: "6+";
5327
+ readonly en: "6+";
5328
+ };
5329
+ readonly comments: null;
5330
+ readonly domain: "cordata";
5331
+ readonly age_limit_type: "tabletop_game";
5332
+ readonly years: 6;
5333
+ readonly nbvok_uri: null;
5334
+ readonly type: "age_limit";
5335
+ };
5336
+ readonly ttg7: {
5337
+ readonly code: "ttg7";
5338
+ readonly name: "7+";
5339
+ readonly preferred_name: {
5340
+ readonly nb: "7+";
5341
+ readonly nn: "7+";
5342
+ readonly en: "7+";
5343
+ };
5344
+ readonly comments: null;
5345
+ readonly domain: "cordata";
5346
+ readonly age_limit_type: "tabletop_game";
5347
+ readonly years: 7;
5348
+ readonly nbvok_uri: null;
5349
+ readonly type: "age_limit";
5350
+ };
5351
+ readonly ttg8: {
5352
+ readonly code: "ttg8";
5353
+ readonly name: "8+";
5354
+ readonly preferred_name: {
5355
+ readonly nb: "8+";
5356
+ readonly nn: "8+";
5357
+ readonly en: "8+";
5358
+ };
5359
+ readonly comments: null;
5360
+ readonly domain: "cordata";
5361
+ readonly age_limit_type: "tabletop_game";
5362
+ readonly years: 8;
5363
+ readonly nbvok_uri: null;
5364
+ readonly type: "age_limit";
5365
+ };
5366
+ readonly ttg9: {
5367
+ readonly code: "ttg9";
5368
+ readonly name: "9+";
5369
+ readonly preferred_name: {
5370
+ readonly nb: "9+";
5371
+ readonly nn: "9+";
5372
+ readonly en: "9+";
5373
+ };
5374
+ readonly comments: null;
5375
+ readonly domain: "cordata";
5376
+ readonly age_limit_type: "tabletop_game";
5377
+ readonly years: 9;
5378
+ readonly nbvok_uri: null;
5379
+ readonly type: "age_limit";
5380
+ };
5381
+ readonly ttg10: {
5382
+ readonly code: "ttg10";
5383
+ readonly name: "10+";
5384
+ readonly preferred_name: {
5385
+ readonly nb: "10+";
5386
+ readonly nn: "10+";
5387
+ readonly en: "10+";
5388
+ };
5389
+ readonly comments: null;
5390
+ readonly domain: "cordata";
5391
+ readonly age_limit_type: "tabletop_game";
5392
+ readonly years: 10;
5393
+ readonly nbvok_uri: null;
5394
+ readonly type: "age_limit";
5395
+ };
5396
+ readonly ttg12: {
5397
+ readonly code: "ttg12";
5398
+ readonly name: "12+";
5399
+ readonly preferred_name: {
5400
+ readonly nb: "12+";
5401
+ readonly nn: "12+";
5402
+ readonly en: "12+";
5403
+ };
5404
+ readonly comments: null;
5405
+ readonly domain: "cordata";
5406
+ readonly age_limit_type: "tabletop_game";
5407
+ readonly years: 12;
5408
+ readonly nbvok_uri: null;
5409
+ readonly type: "age_limit";
5410
+ };
5411
+ readonly ttg14: {
5412
+ readonly code: "ttg14";
5413
+ readonly name: "14+";
5414
+ readonly preferred_name: {
5415
+ readonly nb: "14+";
5416
+ readonly nn: "14+";
5417
+ readonly en: "14+";
5418
+ };
5419
+ readonly comments: null;
5420
+ readonly domain: "cordata";
5421
+ readonly age_limit_type: "tabletop_game";
5422
+ readonly years: 14;
5423
+ readonly nbvok_uri: null;
5424
+ readonly type: "age_limit";
5425
+ };
5426
+ readonly ttg16: {
5427
+ readonly code: "ttg16";
5428
+ readonly name: "16+";
5429
+ readonly preferred_name: {
5430
+ readonly nb: "16+";
5431
+ readonly nn: "16+";
5432
+ readonly en: "16+";
5433
+ };
5434
+ readonly comments: null;
5435
+ readonly domain: "cordata";
5436
+ readonly age_limit_type: "tabletop_game";
5437
+ readonly years: 16;
5438
+ readonly nbvok_uri: null;
5439
+ readonly type: "age_limit";
5440
+ };
5441
+ readonly ttg18: {
5442
+ readonly code: "ttg18";
5443
+ readonly name: "18+";
5444
+ readonly preferred_name: {
5445
+ readonly nb: "18+";
5446
+ readonly nn: "18+";
5447
+ readonly en: "18+";
5448
+ };
5449
+ readonly comments: null;
5450
+ readonly domain: "cordata";
5451
+ readonly age_limit_type: "tabletop_game";
5452
+ readonly years: 18;
5453
+ readonly nbvok_uri: null;
5454
+ readonly type: "age_limit";
5455
+ };
4588
5456
  };
4589
5457
  declare function isCordataEnumAgeLimitCode(value: string): value is CordataEnumAgeLimitCode;
4590
5458
  type CordataEnumAgeLimitCode = keyof typeof cordataEnumAgeLimitMap;
@@ -8167,4 +9035,4 @@ type BmdbSearchClient = Client<BmdbCordataApiV1Paths>;
8167
9035
  declare const createBmdbFetchClient: (options: BmdbSearchClientOptions) => BmdbSearchClient;
8168
9036
  //#endregion
8169
9037
  export { parseCatalogueId as C, ParsedCatalogueId as S, serializeDigitalServiceRecordId as _, BmdbCordataApiV1Schemas as a, parseCatalogueRecordId as b, isCordataEnumContributorRoleCode as c, isCordataEnumManifestationMediumCode as d, isCordataEnumWorkTypeCode as f, parseDigitalServiceRecordId as g, ParsedDigitalServiceRecordId as h, BmdbCordataApiV1Paths as i, isCordataEnumExpressionTypeCode as l, DigitalServiceRecordId as m, BmdbSearchClientOptions as n, isCordataEnumAgeGroupCode as o, formatIsbdTitle as p, createBmdbFetchClient as r, isCordataEnumAgeLimitCode as s, BmdbSearchClient as t, isCordataEnumLanguageCode as u, CatalogueRecordId as v, serializeCatalogueId as w, serializeCatalogueRecordId as x, ParsedCatalogueRecordId as y };
8170
- //# sourceMappingURL=index-D-eYlOix.d.cts.map
9038
+ //# sourceMappingURL=index-D18VklpD.d.cts.map