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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +51 -0
- data/.github/pull_request_template.md +8 -1
- data/.rubocop.yml +14 -3
- data/README.md +21 -13
- data/cocina-models.gemspec +6 -1
- data/docs/index.html +20 -0
- data/docs/maps/DRO.json +1 -1
- data/exe/generator +9 -0
- data/lib/cocina/generator.rb +7 -0
- data/lib/cocina/generator/generator.rb +80 -0
- data/lib/cocina/generator/schema.rb +105 -0
- data/lib/cocina/generator/schema_array.rb +24 -0
- data/lib/cocina/generator/schema_base.rb +71 -0
- data/lib/cocina/generator/schema_ref.rb +16 -0
- data/lib/cocina/generator/schema_value.rb +38 -0
- data/lib/cocina/generator/vocab.rb +63 -0
- data/lib/cocina/models.rb +54 -25
- data/lib/cocina/models/access.rb +14 -0
- data/lib/cocina/models/admin_policy.rb +13 -56
- data/lib/cocina/models/admin_policy_administrative.rb +11 -0
- data/lib/cocina/models/administrative.rb +14 -0
- data/lib/cocina/models/applies_to.rb +9 -0
- data/lib/cocina/models/catalog_link.rb +4 -1
- data/lib/cocina/models/collection.rb +21 -31
- data/lib/cocina/models/collection_identification.rb +9 -0
- data/lib/cocina/models/contributor.rb +14 -0
- data/lib/cocina/models/description.rb +16 -7
- data/lib/cocina/models/descriptive_admin_metadata.rb +12 -0
- data/lib/cocina/models/descriptive_basic_value.rb +21 -0
- data/lib/cocina/models/descriptive_structured_value.rb +9 -0
- data/lib/cocina/models/descriptive_value.rb +23 -0
- data/lib/cocina/models/descriptive_value_required.rb +23 -0
- data/lib/cocina/models/dro.rb +34 -70
- data/lib/cocina/models/dro_access.rb +22 -0
- data/lib/cocina/models/dro_structural.rb +14 -0
- data/lib/cocina/models/embargo.rb +16 -0
- data/lib/cocina/models/event.rb +15 -0
- data/lib/cocina/models/file.rb +20 -36
- data/lib/cocina/models/file_administrative.rb +10 -0
- data/lib/cocina/models/file_set.rb +8 -15
- data/lib/cocina/models/file_set_structural.rb +9 -0
- data/lib/cocina/models/geographic.rb +10 -0
- data/lib/cocina/models/identification.rb +11 -0
- data/lib/cocina/models/message_digest.rb +17 -0
- data/lib/cocina/models/presentation.rb +12 -0
- data/lib/cocina/models/release_tag.rb +12 -7
- data/lib/cocina/models/request_admin_policy.rb +15 -3
- data/lib/cocina/models/request_collection.rb +21 -4
- data/lib/cocina/models/request_dro.rb +32 -11
- data/lib/cocina/models/request_dro_structural.rb +13 -0
- data/lib/cocina/models/request_file.rb +15 -6
- data/lib/cocina/models/request_file_set.rb +7 -9
- data/lib/cocina/models/request_file_set_structural.rb +9 -0
- data/lib/cocina/models/request_identification.rb +11 -0
- data/lib/cocina/models/sequence.rb +3 -5
- data/lib/cocina/models/source.rb +14 -0
- data/lib/cocina/models/validator.rb +28 -0
- data/lib/cocina/models/version.rb +1 -1
- data/lib/cocina/models/vocab.rb +45 -60
- data/openapi.yml +1003 -0
- metadata +116 -19
- data/.travis.yml +0 -23
- data/docs/README.md +0 -9
- data/docs/_config.yml +0 -1
- data/docs/meta.json +0 -9
- data/docs/schema.json +0 -1654
- data/docs/schema.md +0 -268
- data/lib/cocina/models/admin_policy_attributes.rb +0 -21
- data/lib/cocina/models/collection_attributes.rb +0 -22
- data/lib/cocina/models/dro_attributes.rb +0 -22
- data/lib/cocina/models/file_attributes.rb +0 -25
- data/lib/cocina/models/file_set_attributes.rb +0 -16
- data/lib/cocina/models/types.rb +0 -10
data/openapi.yml
ADDED
@@ -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
|