cocina-models 0.29.0 → 0.33.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +51 -0
  3. data/.github/pull_request_template.md +8 -1
  4. data/.rubocop.yml +14 -3
  5. data/README.md +21 -13
  6. data/cocina-models.gemspec +6 -1
  7. data/docs/index.html +20 -0
  8. data/docs/maps/DRO.json +1 -1
  9. data/exe/generator +9 -0
  10. data/lib/cocina/generator.rb +7 -0
  11. data/lib/cocina/generator/generator.rb +80 -0
  12. data/lib/cocina/generator/schema.rb +105 -0
  13. data/lib/cocina/generator/schema_array.rb +24 -0
  14. data/lib/cocina/generator/schema_base.rb +71 -0
  15. data/lib/cocina/generator/schema_ref.rb +16 -0
  16. data/lib/cocina/generator/schema_value.rb +38 -0
  17. data/lib/cocina/generator/vocab.rb +63 -0
  18. data/lib/cocina/models.rb +54 -25
  19. data/lib/cocina/models/access.rb +14 -0
  20. data/lib/cocina/models/admin_policy.rb +13 -56
  21. data/lib/cocina/models/admin_policy_administrative.rb +11 -0
  22. data/lib/cocina/models/administrative.rb +14 -0
  23. data/lib/cocina/models/applies_to.rb +9 -0
  24. data/lib/cocina/models/catalog_link.rb +4 -1
  25. data/lib/cocina/models/collection.rb +21 -31
  26. data/lib/cocina/models/collection_identification.rb +9 -0
  27. data/lib/cocina/models/contributor.rb +14 -0
  28. data/lib/cocina/models/description.rb +16 -7
  29. data/lib/cocina/models/descriptive_admin_metadata.rb +12 -0
  30. data/lib/cocina/models/descriptive_basic_value.rb +21 -0
  31. data/lib/cocina/models/descriptive_structured_value.rb +9 -0
  32. data/lib/cocina/models/descriptive_value.rb +23 -0
  33. data/lib/cocina/models/descriptive_value_required.rb +23 -0
  34. data/lib/cocina/models/dro.rb +34 -70
  35. data/lib/cocina/models/dro_access.rb +22 -0
  36. data/lib/cocina/models/dro_structural.rb +14 -0
  37. data/lib/cocina/models/embargo.rb +16 -0
  38. data/lib/cocina/models/event.rb +15 -0
  39. data/lib/cocina/models/file.rb +20 -36
  40. data/lib/cocina/models/file_administrative.rb +10 -0
  41. data/lib/cocina/models/file_set.rb +8 -15
  42. data/lib/cocina/models/file_set_structural.rb +9 -0
  43. data/lib/cocina/models/geographic.rb +10 -0
  44. data/lib/cocina/models/identification.rb +11 -0
  45. data/lib/cocina/models/message_digest.rb +17 -0
  46. data/lib/cocina/models/presentation.rb +12 -0
  47. data/lib/cocina/models/release_tag.rb +12 -7
  48. data/lib/cocina/models/request_admin_policy.rb +15 -3
  49. data/lib/cocina/models/request_collection.rb +21 -4
  50. data/lib/cocina/models/request_dro.rb +32 -11
  51. data/lib/cocina/models/request_dro_structural.rb +13 -0
  52. data/lib/cocina/models/request_file.rb +15 -6
  53. data/lib/cocina/models/request_file_set.rb +7 -9
  54. data/lib/cocina/models/request_file_set_structural.rb +9 -0
  55. data/lib/cocina/models/request_identification.rb +11 -0
  56. data/lib/cocina/models/sequence.rb +3 -5
  57. data/lib/cocina/models/source.rb +14 -0
  58. data/lib/cocina/models/validator.rb +28 -0
  59. data/lib/cocina/models/version.rb +1 -1
  60. data/lib/cocina/models/vocab.rb +45 -60
  61. data/openapi.yml +1003 -0
  62. metadata +116 -19
  63. data/.travis.yml +0 -23
  64. data/docs/README.md +0 -9
  65. data/docs/_config.yml +0 -1
  66. data/docs/meta.json +0 -9
  67. data/docs/schema.json +0 -1654
  68. data/docs/schema.md +0 -268
  69. data/lib/cocina/models/admin_policy_attributes.rb +0 -21
  70. data/lib/cocina/models/collection_attributes.rb +0 -22
  71. data/lib/cocina/models/dro_attributes.rb +0 -22
  72. data/lib/cocina/models/file_attributes.rb +0 -25
  73. data/lib/cocina/models/file_set_attributes.rb +0 -16
  74. data/lib/cocina/models/types.rb +0 -10
@@ -0,0 +1,1003 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ description: Specification for Cocina Models
4
+ version: 1.0.0
5
+ title: Cocina Models
6
+ license:
7
+ name: Apache 2.0
8
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
9
+ paths:
10
+ /validate/DRO:
11
+ post:
12
+ summary: Validate a DRO
13
+ requestBody:
14
+ required: true
15
+ content:
16
+ application/json:
17
+ schema:
18
+ $ref: '#/components/schemas/DRO'
19
+ responses:
20
+ '200':
21
+ description: noop
22
+ /validate/RequestDRO:
23
+ post:
24
+ summary: Validate a Request DRO
25
+ requestBody:
26
+ required: true
27
+ content:
28
+ application/json:
29
+ schema:
30
+ $ref: '#/components/schemas/RequestDRO'
31
+ responses:
32
+ '200':
33
+ description: noop
34
+ /validate/Collection:
35
+ post:
36
+ summary: Validate a Collection
37
+ requestBody:
38
+ required: true
39
+ content:
40
+ application/json:
41
+ schema:
42
+ $ref: '#/components/schemas/Collection'
43
+ responses:
44
+ '200':
45
+ description: noop
46
+ /validate/RequestCollection:
47
+ post:
48
+ summary: Validate a Request Collection
49
+ requestBody:
50
+ required: true
51
+ content:
52
+ application/json:
53
+ schema:
54
+ $ref: '#/components/schemas/RequestCollection'
55
+ responses:
56
+ '200':
57
+ description: noop
58
+ /validate/AdminPolicy:
59
+ post:
60
+ summary: Validate an AdminPolicy
61
+ requestBody:
62
+ required: true
63
+ content:
64
+ application/json:
65
+ schema:
66
+ $ref: '#/components/schemas/AdminPolicy'
67
+ responses:
68
+ '200':
69
+ description: noop
70
+ /validate/RequestAdminPolicy:
71
+ post:
72
+ summary: Validate a Request AdminPolicy
73
+ requestBody:
74
+ required: true
75
+ content:
76
+ application/json:
77
+ schema:
78
+ $ref: '#/components/schemas/RequestAdminPolicy'
79
+ responses:
80
+ '200':
81
+ description: noop
82
+ /validate/Description:
83
+ post:
84
+ summary: Validate a Description
85
+ requestBody:
86
+ required: true
87
+ content:
88
+ application/json:
89
+ schema:
90
+ $ref: '#/components/schemas/Description'
91
+ responses:
92
+ '200':
93
+ description: noop
94
+ components:
95
+ schemas:
96
+ Access:
97
+ description: Access metadata
98
+ type: object
99
+ additionalProperties: false
100
+ properties:
101
+ access:
102
+ description: Access level
103
+ type: string
104
+ enum:
105
+ - 'world'
106
+ - 'stanford'
107
+ - 'location-based'
108
+ - 'citation-only'
109
+ - 'dark'
110
+ default: 'dark'
111
+ download:
112
+ description: Download access level for a file
113
+ type: string
114
+ enum:
115
+ - 'world'
116
+ - 'stanford'
117
+ - 'location-based'
118
+ - 'none'
119
+ default: 'none'
120
+ readLocation:
121
+ description: If access is "location-based", which location should have access.
122
+ type: string
123
+ enum:
124
+ - 'spec'
125
+ - 'music'
126
+ - 'ars'
127
+ - 'art'
128
+ - 'hoover'
129
+ - 'm&m'
130
+ Administrative:
131
+ type: object
132
+ additionalProperties: false
133
+ properties:
134
+ hasAdminPolicy:
135
+ $ref: '#/components/schemas/Druid'
136
+ releaseTags:
137
+ description: Tags for release
138
+ type: array
139
+ items:
140
+ $ref: '#/components/schemas/ReleaseTag'
141
+ partOfProject:
142
+ description: Administrative or Internal project this resource is a part of
143
+ example: Google Books
144
+ type: string
145
+ AdminPolicy:
146
+ type: object
147
+ additionalProperties: false
148
+ properties:
149
+ type:
150
+ type: string
151
+ enum:
152
+ - 'http://cocina.sul.stanford.edu/models/admin_policy.jsonld'
153
+ example: item
154
+ externalIdentifier:
155
+ $ref: '#/components/schemas/Druid'
156
+ label:
157
+ type: string
158
+ version:
159
+ type: integer
160
+ administrative:
161
+ $ref: '#/components/schemas/AdminPolicyAdministrative'
162
+ description:
163
+ $ref: '#/components/schemas/Description'
164
+ required:
165
+ - externalIdentifier
166
+ - label
167
+ - type
168
+ - version
169
+ - administrative
170
+ AdminPolicyAdministrative:
171
+ type: object
172
+ additionalProperties: false
173
+ properties:
174
+ defaultObjectRights:
175
+ type: string
176
+ default: <?xml version="1.0" encoding="UTF-8"?><rightsMetadata><access type="discover"><machine><world/></machine></access><access type="read"><machine><world/></machine></access><use><human type="useAndReproduction"/><human type="creativeCommons"/><machine type="creativeCommons" uri=""/><human type="openDataCommons"/><machine type="openDataCommons" uri=""/></use><copyright><human/></copyright></rightsMetadata>
177
+ registrationWorkflow:
178
+ type: string
179
+ hasAdminPolicy:
180
+ type: string
181
+ AppliesTo:
182
+ description: Property model for indicating the parts, aspects, or versions of the resource to which a
183
+ descriptive element is applicable.
184
+ type: object
185
+ additionalProperties: false
186
+ properties:
187
+ appliesTo:
188
+ type: array
189
+ items:
190
+ $ref: "#/components/schemas/DescriptiveBasicValue"
191
+ CatalogLink:
192
+ type: object
193
+ additionalProperties: false
194
+ required:
195
+ - catalog
196
+ - catalogRecordId
197
+ properties:
198
+ catalog:
199
+ description: Catalog that is the source of the linked record.
200
+ type: string
201
+ example: symphony
202
+ catalogRecordId:
203
+ description: Record identifier that is unique within the context of the linked record's catalog.
204
+ type: string
205
+ example: 11403803
206
+ Collection:
207
+ description: A group of Digital Repository Objects that indicate some type of conceptual grouping within the domain that is worth reusing across the system.
208
+ type: object
209
+ additionalProperties: false
210
+ properties:
211
+ type:
212
+ description: The content type of the Collection. Selected from an established set of values.
213
+ type: string
214
+ enum:
215
+ - 'http://cocina.sul.stanford.edu/models/collection.jsonld'
216
+ - 'http://cocina.sul.stanford.edu/models/curated-collection.jsonld'
217
+ - 'http://cocina.sul.stanford.edu/models/user-collection.jsonld'
218
+ - 'http://cocina.sul.stanford.edu/models/exhibit.jsonld'
219
+ - 'http://cocina.sul.stanford.edu/models/series.jsonld'
220
+ example: item
221
+ externalIdentifier:
222
+ $ref: '#/components/schemas/Druid'
223
+ label:
224
+ description: Primary processing label (can be same as title) for a Collection.
225
+ type: string
226
+ version:
227
+ description: Version for the Collection within SDR.
228
+ type: integer
229
+ access:
230
+ $ref: '#/components/schemas/Access'
231
+ administrative:
232
+ $ref: '#/components/schemas/Administrative'
233
+ description:
234
+ $ref: '#/components/schemas/Description'
235
+ identification:
236
+ $ref: '#/components/schemas/CollectionIdentification'
237
+ required:
238
+ - externalIdentifier
239
+ - label
240
+ - type
241
+ - version
242
+ - access
243
+ CollectionIdentification:
244
+ type: object
245
+ additionalProperties: false
246
+ properties:
247
+ catalogLinks:
248
+ type: array
249
+ items:
250
+ $ref: '#/components/schemas/CatalogLink'
251
+ Contributor:
252
+ description: Property model for describing agents contributing in some way to
253
+ the creation and history of the resource
254
+ type: object
255
+ additionalProperties: false
256
+ properties:
257
+ name:
258
+ description: Names associated with a contributor.
259
+ type: array
260
+ items:
261
+ $ref: "#/components/schemas/DescriptiveValue"
262
+ type:
263
+ description: Entity type of the contributor (person, organization, etc.).
264
+ type: string
265
+ status:
266
+ description: Status of the contributor relative to other parallel contributors.
267
+ type: string
268
+ role:
269
+ description: Relationships of the contributor to the resource or to an event
270
+ in its history.
271
+ type: array
272
+ items:
273
+ $ref: "#/components/schemas/DescriptiveValue"
274
+ DescriptiveAdminMetadata:
275
+ description: Information about this description of the resource.
276
+ type: object
277
+ additionalProperties: false
278
+ properties:
279
+ contributor:
280
+ type: array
281
+ items:
282
+ $ref: "#/components/schemas/Contributor"
283
+ event:
284
+ type: array
285
+ items:
286
+ $ref: "#/components/schemas/Event"
287
+ language:
288
+ type: array
289
+ items:
290
+ $ref: "#/components/schemas/DescriptiveValue"
291
+ note:
292
+ type: array
293
+ items:
294
+ $ref: "#/components/schemas/DescriptiveValue"
295
+ DescriptiveBasicValue:
296
+ description: Value model for descriptive elements without recursive properties.
297
+ type: object
298
+ additionalProperties: false
299
+ properties:
300
+ value:
301
+ description: String value of the descriptive element.
302
+ type: string
303
+ type:
304
+ description: Type of value provided by the descriptive element.
305
+ type: string
306
+ status:
307
+ description: Status of the descriptive element relative to other instances
308
+ of the element.
309
+ type: string
310
+ code:
311
+ description: Code value of the descriptive element.
312
+ type: string
313
+ uri:
314
+ description: URI value of the descriptive element.
315
+ type: string
316
+ format: uri
317
+ standard:
318
+ description: Descriptive or content standard to which the value conforms.
319
+ type: array
320
+ items:
321
+ type: string
322
+ encoding:
323
+ description: Encoding schema, standard, or syntax to which the value conforms.
324
+ type: array
325
+ items:
326
+ type: string
327
+ source:
328
+ $ref: "#/components/schemas/Source"
329
+ DescriptiveStructuredValue:
330
+ description: Value model for descriptive elements structured as typed values.
331
+ type: object
332
+ additionalProperties: false
333
+ properties:
334
+ structuredValue:
335
+ type: array
336
+ items:
337
+ $ref: "#/components/schemas/DescriptiveBasicValue"
338
+ DescriptiveValue:
339
+ description: Default value model for descriptive elements.
340
+ type: object
341
+ additionalProperties: false
342
+ allOf:
343
+ - $ref: "#/components/schemas/DescriptiveBasicValue"
344
+ - $ref: "#/components/schemas/DescriptiveStructuredValue"
345
+ - $ref: "#/components/schemas/AppliesTo"
346
+ DescriptiveValueRequired:
347
+ type: object
348
+ additionalProperties: false
349
+ allOf:
350
+ - $ref: "#/components/schemas/DescriptiveValue"
351
+ - anyOf:
352
+ - type: object
353
+ required:
354
+ - value
355
+ - type: object
356
+ required:
357
+ - structuredValue
358
+ Description:
359
+ type: object
360
+ additionalProperties: false
361
+ properties:
362
+ title:
363
+ description: Titles of the resource.
364
+ type: array
365
+ minItems: 1
366
+ items:
367
+ $ref: "#/components/schemas/DescriptiveValueRequired"
368
+ contributor:
369
+ description: Agents contributing in some way to the creation and history of the
370
+ resource.
371
+ type: array
372
+ items:
373
+ $ref: "#/components/schemas/Contributor"
374
+ event:
375
+ description: Events in the history of the resource.
376
+ type: array
377
+ items:
378
+ $ref: "#/components/schemas/Event"
379
+ form:
380
+ description: Characteristics of the resource's physical, digital, and intellectual
381
+ form and genre.
382
+ type: array
383
+ items:
384
+ $ref: "#/components/schemas/DescriptiveValue"
385
+ language:
386
+ description: Languages, scripts, and notations used in all or part of a resource.
387
+ type: array
388
+ items:
389
+ $ref: "#/components/schemas/DescriptiveValue"
390
+ note:
391
+ description: Additional information relevant to a resource.
392
+ type: array
393
+ items:
394
+ $ref: "#/components/schemas/DescriptiveValue"
395
+ identifier:
396
+ description: Unique strings associated with the resource.
397
+ type: array
398
+ items:
399
+ $ref: "#/components/schemas/DescriptiveValue"
400
+ purl:
401
+ description: Stanford persistent URL associated with the resource.
402
+ type: string
403
+ format: uri
404
+ url:
405
+ description: URLs where the resource may be accessed in full or part.
406
+ type: array
407
+ items:
408
+ $ref: "#/components/schemas/DescriptiveValue"
409
+ marcEncodedData:
410
+ description: Data about the resource represented in MARC fixed fields and codes.
411
+ type: array
412
+ items:
413
+ $ref: "#/components/schemas/DescriptiveValue"
414
+ adminMetadata:
415
+ $ref: "#/components/schemas/DescriptiveAdminMetadata"
416
+ required:
417
+ - title
418
+ DRO:
419
+ description: Domain-defined abstraction of a 'work'. Digital Repository Objects' abstraction is describable for our domain’s purposes, i.e. for management needs within our system.
420
+ type: object
421
+ additionalProperties: false
422
+ properties:
423
+ type:
424
+ description: The content type of the DRO. Selected from an established set of values.
425
+ type: string
426
+ enum:
427
+ - 'http://cocina.sul.stanford.edu/models/object.jsonld'
428
+ - 'http://cocina.sul.stanford.edu/models/3d.jsonld'
429
+ - 'http://cocina.sul.stanford.edu/models/agreement.jsonld'
430
+ - 'http://cocina.sul.stanford.edu/models/book.jsonld'
431
+ - 'http://cocina.sul.stanford.edu/models/document.jsonld'
432
+ - 'http://cocina.sul.stanford.edu/models/geo.jsonld'
433
+ - 'http://cocina.sul.stanford.edu/models/image.jsonld'
434
+ - 'http://cocina.sul.stanford.edu/models/page.jsonld'
435
+ - 'http://cocina.sul.stanford.edu/models/photograph.jsonld'
436
+ - 'http://cocina.sul.stanford.edu/models/manuscript.jsonld'
437
+ - 'http://cocina.sul.stanford.edu/models/map.jsonld'
438
+ - 'http://cocina.sul.stanford.edu/models/media.jsonld'
439
+ - 'http://cocina.sul.stanford.edu/models/track.jsonld'
440
+ - 'http://cocina.sul.stanford.edu/models/webarchive-binary.jsonld'
441
+ - 'http://cocina.sul.stanford.edu/models/webarchive-seed.jsonld'
442
+ example: item
443
+ externalIdentifier:
444
+ $ref: '#/components/schemas/Druid'
445
+ label:
446
+ description: Primary processing label (can be same as title) for a DRO.
447
+ type: string
448
+ version:
449
+ description: Version for the DRO within SDR.
450
+ type: integer
451
+ access:
452
+ $ref: '#/components/schemas/DROAccess'
453
+ administrative:
454
+ $ref: '#/components/schemas/Administrative'
455
+ description:
456
+ $ref: '#/components/schemas/Description'
457
+ identification:
458
+ $ref: '#/components/schemas/Identification'
459
+ structural:
460
+ $ref: '#/components/schemas/DROStructural'
461
+ geographic:
462
+ $ref: '#/components/schemas/Geographic'
463
+ required:
464
+ - externalIdentifier
465
+ - label
466
+ - type
467
+ - version
468
+ - access
469
+ DROAccess:
470
+ type: object
471
+ additionalProperties: false
472
+ properties:
473
+ access:
474
+ type: string
475
+ enum:
476
+ - 'world'
477
+ - 'stanford'
478
+ - 'location-based'
479
+ - 'citation-only'
480
+ - 'dark'
481
+ default: 'dark'
482
+ copyright:
483
+ description: The human readable copyright statement that applies
484
+ example: Copyright World Trade Organization
485
+ type: string
486
+ embargo:
487
+ $ref: '#/components/schemas/Embargo'
488
+ download:
489
+ description: >
490
+ Download access level. This is used in the transition from Fedora as
491
+ a way to set a default download level at registration that is copied
492
+ down to all the files.
493
+
494
+ type: string
495
+ enum:
496
+ - 'world'
497
+ - 'stanford'
498
+ - 'location-based'
499
+ - 'none'
500
+ default: 'none'
501
+ readLocation:
502
+ description: >
503
+ If access is "location-based", which location should have access.
504
+ This is used in the transition from Fedora as a way to set a default
505
+ readLocation at registration that is copied down to all the files.
506
+
507
+ type: string
508
+ enum:
509
+ - 'spec'
510
+ - 'music'
511
+ - 'ars'
512
+ - 'art'
513
+ - 'hoover'
514
+ - 'm&m'
515
+ useAndReproductionStatement:
516
+ description: The human readable use and reproduction statement that applies
517
+ example: Property rights reside with the repository. Literary rights reside with the creators of the documents or their heirs. To obtain permission to publish or reproduce, please contact the Public Services Librarian of the Dept. of Special Collections (http://library.stanford.edu/spc).
518
+ type: string
519
+ DROStructural:
520
+ description: Structural metadata
521
+ type: object
522
+ additionalProperties: false
523
+ properties:
524
+ contains:
525
+ description: Filesets that contain the digital representations (Files)
526
+ type: array
527
+ items:
528
+ $ref: '#/components/schemas/FileSet'
529
+ hasMemberOrders:
530
+ description: Provided sequences or orderings of members, including some metadata about each sequence (i.e. sequence label, sequence type, if the sequence is primary, etc.).
531
+ type: array
532
+ items:
533
+ $ref: '#/components/schemas/Sequence'
534
+ isMemberOf:
535
+ $ref: '#/components/schemas/Druid'
536
+ hasAgreement:
537
+ description: Agreement that covers the deposit of the DRO into SDR.
538
+ type: string
539
+ Druid:
540
+ type: string
541
+ pattern: '^druid:[b-df-hjkmnp-tv-z]{2}[0-9]{3}[b-df-hjkmnp-tv-z]{2}[0-9]{4}$'
542
+ example: 'druid:bc123df4567'
543
+ Embargo:
544
+ type: object
545
+ additionalProperties: false
546
+ properties:
547
+ releaseDate:
548
+ description: Date when the Collection is released from an embargo.
549
+ type: string
550
+ format: date-time
551
+ example: '2029-06-22T07:00:00.000+00:00'
552
+ access:
553
+ description: Access level that applies when embargo expires.
554
+ type: string
555
+ enum:
556
+ - world
557
+ - stanford
558
+ - location-based
559
+ - citation-only
560
+ - dark
561
+ useAndReproductionStatement:
562
+ description: The human readable use and reproduction statement that applies when the embargo expires.
563
+ example: These materials are in the public domain.
564
+ type: string
565
+ required:
566
+ - releaseDate
567
+ - access
568
+ Event:
569
+ description: Property model for describing events in the history of the resource.
570
+ type: object
571
+ additionalProperties: false
572
+ allOf:
573
+ - $ref: "#/components/schemas/DescriptiveStructuredValue"
574
+ - type: object
575
+ additionalProperties: false
576
+ properties:
577
+ type:
578
+ description: Description of the event (creation, publication, etc.).
579
+ type: string
580
+ date:
581
+ description: Dates associated with the event.
582
+ type: array
583
+ items:
584
+ $ref: "#/components/schemas/DescriptiveValue"
585
+ contributor:
586
+ description: Contributors associated with the event.
587
+ type: array
588
+ items:
589
+ $ref: "#/components/schemas/Contributor"
590
+ location:
591
+ description: Locations associated with the event.
592
+ type: array
593
+ items:
594
+ $ref: "#/components/schemas/DescriptiveValue"
595
+ note:
596
+ description: Other information about the event.
597
+ type: array
598
+ items:
599
+ $ref: "#/components/schemas/DescriptiveValue"
600
+ File:
601
+ description: Binaries that are the basis of what our domain manages. Binaries here do not include metadata files generated for the domain's own management purposes.
602
+ type: object
603
+ additionalProperties: false
604
+ properties:
605
+ type:
606
+ description: The content type of the File.
607
+ type: string
608
+ enum:
609
+ - 'http://cocina.sul.stanford.edu/models/file.jsonld'
610
+ externalIdentifier:
611
+ description: Identifier for the resource within the SDR architecture but outside of the repository. UUID. Constant across resource versions. What clients will use calling the repository.
612
+ type: string
613
+ label:
614
+ description: Primary processing label (can be same as title) for a File.
615
+ type: string
616
+ filename:
617
+ description: Filename for a file. Can be same as label.
618
+ type: string
619
+ size:
620
+ description: Size of the File (binary) in bytes.
621
+ type: integer
622
+ version:
623
+ description: Version for the File within SDR.
624
+ type: integer
625
+ hasMimeType:
626
+ description: MIME Type of the File.
627
+ type: string
628
+ use:
629
+ description: Use for the File.
630
+ type: string
631
+ hasMessageDigests:
632
+ type: array
633
+ items:
634
+ $ref: '#/components/schemas/MessageDigest'
635
+ access:
636
+ $ref: '#/components/schemas/Access'
637
+ administrative:
638
+ $ref: '#/components/schemas/FileAdministrative'
639
+ presentation:
640
+ $ref: '#/components/schemas/Presentation'
641
+ required:
642
+ - externalIdentifier
643
+ - label
644
+ - filename
645
+ - type
646
+ - version
647
+ - access
648
+ - administrative
649
+ - hasMessageDigests
650
+ FileAdministrative:
651
+ type: object
652
+ additionalProperties: false
653
+ properties:
654
+ sdrPreserve:
655
+ type: boolean
656
+ default: true
657
+ shelve:
658
+ type: boolean
659
+ default: false
660
+ required:
661
+ - sdrPreserve
662
+ - shelve
663
+ FileSet:
664
+ description: Relevant groupings of Files. Also called a File Grouping.
665
+ type: object
666
+ additionalProperties: false
667
+ properties:
668
+ type:
669
+ description: The content type of the Fileset.
670
+ type: string
671
+ enum:
672
+ - 'http://cocina.sul.stanford.edu/models/fileset.jsonld'
673
+ externalIdentifier:
674
+ type: string
675
+ label:
676
+ description: Primary processing label for a Fileset.
677
+ type: string
678
+ version:
679
+ description: Version for the Fileset within SDR.
680
+ type: integer
681
+ structural:
682
+ $ref: '#/components/schemas/FileSetStructural'
683
+ required:
684
+ - externalIdentifier
685
+ - label
686
+ - type
687
+ - version
688
+ FileSetStructural:
689
+ description: Structural metadata
690
+ type: object
691
+ additionalProperties: false
692
+ properties:
693
+ contains:
694
+ type: array
695
+ items:
696
+ $ref: '#/components/schemas/File'
697
+ Geographic:
698
+ description: Geographic metadata
699
+ type: object
700
+ additionalProperties: false
701
+ properties:
702
+ iso19139:
703
+ description: Geographic ISO 19139 XML metadata
704
+ type: string
705
+ required:
706
+ - iso19139
707
+ Identification:
708
+ type: object
709
+ additionalProperties: false
710
+ properties:
711
+ sourceId:
712
+ type: string
713
+ example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
714
+ catalogLinks:
715
+ type: array
716
+ items:
717
+ $ref: '#/components/schemas/CatalogLink'
718
+ MessageDigest:
719
+ description: The output of the message digest algorithm.
720
+ type: object
721
+ additionalProperties: false
722
+ properties:
723
+ type:
724
+ description: The algorithm that was used
725
+ type: string
726
+ enum:
727
+ - md5
728
+ - sha1
729
+ digest:
730
+ description: The digest value Base64 encoded
731
+ type: string
732
+ required:
733
+ - type
734
+ - digest
735
+ Presentation:
736
+ description: Presentation data for the File.
737
+ type: object
738
+ additionalProperties: false
739
+ properties:
740
+ height:
741
+ description: Height in pixels
742
+ type: integer
743
+ width:
744
+ description: Width in pixels
745
+ type: integer
746
+ ReleaseTag:
747
+ description: A tag that indicates the item or collection should be released.
748
+ type: object
749
+ additionalProperties: false
750
+ required:
751
+ - release
752
+ properties:
753
+ who:
754
+ description: Who did this release
755
+ type: string
756
+ example: petucket
757
+ what:
758
+ description: What is being released. This item or the whole collection.
759
+ type: string
760
+ enum:
761
+ - self
762
+ - collection
763
+ example: self
764
+ date:
765
+ description: When did this action happen
766
+ type: string
767
+ format: date-time
768
+ to:
769
+ description: What platform is it released to
770
+ type: string
771
+ example: Searchworks
772
+ release:
773
+ type: boolean
774
+ RequestAdminPolicy:
775
+ description: Same as an AdminPolicy, but doesn't have an externalIdentifier as one will be created
776
+ type: object
777
+ additionalProperties: false
778
+ properties:
779
+ type:
780
+ type: string
781
+ enum:
782
+ - 'http://cocina.sul.stanford.edu/models/admin_policy.jsonld'
783
+ example: item
784
+ label:
785
+ type: string
786
+ version:
787
+ type: integer
788
+ administrative:
789
+ $ref: '#/components/schemas/AdminPolicyAdministrative'
790
+ description:
791
+ $ref: '#/components/schemas/Description'
792
+ required:
793
+ - label
794
+ - type
795
+ - version
796
+ - administrative
797
+ RequestCollection:
798
+ description: Same as a Collection, but doesn't have an externalIdentifier as one will be created
799
+ type: object
800
+ additionalProperties: false
801
+ properties:
802
+ type:
803
+ type: string
804
+ enum:
805
+ - 'http://cocina.sul.stanford.edu/models/collection.jsonld'
806
+ - 'http://cocina.sul.stanford.edu/models/curated-collection.jsonld'
807
+ - 'http://cocina.sul.stanford.edu/models/user-collection.jsonld'
808
+ - 'http://cocina.sul.stanford.edu/models/exhibit.jsonld'
809
+ - 'http://cocina.sul.stanford.edu/models/series.jsonld'
810
+ example: item
811
+ label:
812
+ type: string
813
+ version:
814
+ type: integer
815
+ access:
816
+ $ref: '#/components/schemas/Access'
817
+ administrative:
818
+ $ref: '#/components/schemas/Administrative'
819
+ description:
820
+ $ref: '#/components/schemas/Description'
821
+ identification:
822
+ $ref: '#/components/schemas/CollectionIdentification'
823
+ required:
824
+ - label
825
+ - type
826
+ - version
827
+ - access
828
+ RequestDRO:
829
+ description: A request to create a DRO. This has the same general structure as a DRO but doesn't have externalIdentifier and doesn't require the access subschema. If no access subschema is provided, these values will be inherited from the AdminPolicy.
830
+ type: object
831
+ additionalProperties: false
832
+ properties:
833
+ type:
834
+ type: string
835
+ enum:
836
+ - 'http://cocina.sul.stanford.edu/models/object.jsonld'
837
+ - 'http://cocina.sul.stanford.edu/models/3d.jsonld'
838
+ - 'http://cocina.sul.stanford.edu/models/agreement.jsonld'
839
+ - 'http://cocina.sul.stanford.edu/models/book.jsonld'
840
+ - 'http://cocina.sul.stanford.edu/models/document.jsonld'
841
+ - 'http://cocina.sul.stanford.edu/models/geo.jsonld'
842
+ - 'http://cocina.sul.stanford.edu/models/image.jsonld'
843
+ - 'http://cocina.sul.stanford.edu/models/page.jsonld'
844
+ - 'http://cocina.sul.stanford.edu/models/photograph.jsonld'
845
+ - 'http://cocina.sul.stanford.edu/models/manuscript.jsonld'
846
+ - 'http://cocina.sul.stanford.edu/models/map.jsonld'
847
+ - 'http://cocina.sul.stanford.edu/models/media.jsonld'
848
+ - 'http://cocina.sul.stanford.edu/models/track.jsonld'
849
+ - 'http://cocina.sul.stanford.edu/models/webarchive-binary.jsonld'
850
+ - 'http://cocina.sul.stanford.edu/models/webarchive-seed.jsonld'
851
+ example: item
852
+ label:
853
+ type: string
854
+ version:
855
+ type: integer
856
+ access:
857
+ $ref: '#/components/schemas/DROAccess'
858
+ administrative:
859
+ $ref: '#/components/schemas/Administrative'
860
+ description:
861
+ $ref: '#/components/schemas/Description'
862
+ identification:
863
+ $ref: '#/components/schemas/RequestIdentification'
864
+ structural:
865
+ $ref: '#/components/schemas/RequestDROStructural'
866
+ geographic:
867
+ $ref: '#/components/schemas/Geographic'
868
+ required:
869
+ - label
870
+ - type
871
+ - version
872
+ - identification
873
+ RequestDROStructural:
874
+ description: Structural metadata
875
+ type: object
876
+ additionalProperties: false
877
+ properties:
878
+ contains:
879
+ type: array
880
+ items:
881
+ $ref: '#/components/schemas/RequestFileSet'
882
+ hasMemberOrders:
883
+ type: array
884
+ items:
885
+ $ref: '#/components/schemas/Sequence'
886
+ isMemberOf:
887
+ $ref: '#/components/schemas/Druid'
888
+ hasAgreement:
889
+ type: string
890
+ RequestFile:
891
+ type: object
892
+ additionalProperties: false
893
+ properties:
894
+ type:
895
+ type: string
896
+ enum:
897
+ - 'http://cocina.sul.stanford.edu/models/file.jsonld'
898
+ label:
899
+ type: string
900
+ filename:
901
+ type: string
902
+ size:
903
+ type: integer
904
+ version:
905
+ type: integer
906
+ hasMimeType:
907
+ type: string
908
+ externalIdentifier:
909
+ type: string
910
+ use:
911
+ type: string
912
+ hasMessageDigests:
913
+ type: array
914
+ items:
915
+ $ref: '#/components/schemas/MessageDigest'
916
+ access:
917
+ $ref: '#/components/schemas/Access'
918
+ administrative:
919
+ $ref: '#/components/schemas/FileAdministrative'
920
+ presentation:
921
+ $ref: '#/components/schemas/Presentation'
922
+ required:
923
+ - label
924
+ - type
925
+ - version
926
+ - filename
927
+ - access
928
+ - administrative
929
+ - hasMessageDigests
930
+ RequestFileSet:
931
+ type: object
932
+ additionalProperties: false
933
+ properties:
934
+ type:
935
+ type: string
936
+ enum:
937
+ - 'http://cocina.sul.stanford.edu/models/fileset.jsonld'
938
+ label:
939
+ type: string
940
+ version:
941
+ type: integer
942
+ structural:
943
+ $ref: '#/components/schemas/RequestFileSetStructural'
944
+ required:
945
+ - label
946
+ - type
947
+ - version
948
+ - structural
949
+ RequestFileSetStructural:
950
+ description: Structural metadata
951
+ type: object
952
+ additionalProperties: false
953
+ properties:
954
+ contains:
955
+ type: array
956
+ items:
957
+ $ref: '#/components/schemas/RequestFile'
958
+ RequestIdentification:
959
+ description: Same as a Identification, but requires a sourceId.
960
+ type: object
961
+ additionalProperties: false
962
+ properties:
963
+ sourceId:
964
+ type: string
965
+ example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
966
+ catalogLinks:
967
+ type: array
968
+ items:
969
+ $ref: '#/components/schemas/CatalogLink'
970
+ required:
971
+ - sourceId
972
+ Sequence:
973
+ description: A sequence or ordering of resources within a Collection or Object.
974
+ type: object
975
+ additionalProperties: false
976
+ properties:
977
+ members:
978
+ description: "Identifiers for Members in their stated Order for the Sequence."
979
+ type: array
980
+ items:
981
+ type: string
982
+ viewingDirection:
983
+ description: The direction that a sequence of canvases should be displayed to the user
984
+ type: string
985
+ enum:
986
+ - right-to-left
987
+ - left-to-right
988
+ Source:
989
+ description: Property model for indicating the vocabulary, authority, or other
990
+ origin for a term, code, or identifier.
991
+ type: object
992
+ additionalProperties: false
993
+ properties:
994
+ code:
995
+ description: Code representing the value source.
996
+ type: string
997
+ uri:
998
+ description: URI for the value source.
999
+ type: string
1000
+ format: uri
1001
+ value:
1002
+ description: String describing the value source.
1003
+ type: string