cocina-models 0.34.0 → 0.38.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +63 -1
- data/README.md +11 -0
- data/cocina-models.gemspec +1 -0
- data/docs/maps/DRO.json +9 -2
- data/lib/cocina/generator/datatype.rb +22 -0
- data/lib/cocina/generator/generator.rb +11 -3
- data/lib/cocina/models/contributor.rb +3 -1
- data/lib/cocina/models/description.rb +4 -2
- data/lib/cocina/models/descriptive_access_metadata.rb +13 -0
- data/lib/cocina/models/descriptive_admin_metadata.rb +3 -1
- data/lib/cocina/models/descriptive_basic_value.rb +10 -3
- data/lib/cocina/models/descriptive_parallel_value.rb +9 -0
- data/lib/cocina/models/descriptive_structured_value.rb +1 -1
- data/lib/cocina/models/descriptive_value.rb +10 -4
- data/lib/cocina/models/descriptive_value_required.rb +10 -4
- data/lib/cocina/models/dro_access.rb +2 -0
- data/lib/cocina/models/dro_structural.rb +1 -2
- data/lib/cocina/models/druid.rb +9 -0
- data/lib/cocina/models/event.rb +1 -1
- data/lib/cocina/models/file.rb +1 -1
- data/lib/cocina/models/file_access.rb +16 -0
- data/lib/cocina/models/identification.rb +2 -0
- data/lib/cocina/models/language.rb +30 -0
- data/lib/cocina/models/related_resource.rb +21 -0
- data/lib/cocina/models/request_dro.rb +1 -1
- data/lib/cocina/models/request_dro_structural.rb +1 -2
- data/lib/cocina/models/request_file.rb +1 -1
- data/lib/cocina/models/request_identification.rb +2 -0
- data/lib/cocina/models/source.rb +1 -0
- data/lib/cocina/models/source_id.rb +9 -0
- data/lib/cocina/models/standard.rb +16 -0
- data/lib/cocina/models/version.rb +1 -1
- data/openapi.yml +337 -111
- metadata +16 -7
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class Language < Struct
|
6
|
+
attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
|
+
attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
|
+
# String value of the descriptive element.
|
9
|
+
attribute :value, Types::Strict::String.meta(omittable: true)
|
10
|
+
# Type of value provided by the descriptive element.
|
11
|
+
attribute :type, Types::Strict::String.meta(omittable: true)
|
12
|
+
# Status of the descriptive element value relative to other instances of the element.
|
13
|
+
attribute :status, Types::Strict::String.meta(omittable: true)
|
14
|
+
# Code value of the descriptive element.
|
15
|
+
attribute :code, Types::Strict::String.meta(omittable: true)
|
16
|
+
# URI value of the descriptive element.
|
17
|
+
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
|
+
attribute :standard, Standard.optional.meta(omittable: true)
|
19
|
+
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
+
attribute :source, Source.optional.meta(omittable: true)
|
21
|
+
# The preferred display label to use for the descriptive element in access systems.
|
22
|
+
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
23
|
+
# A term providing information about the circumstances of the statement (e.g., approximate dates).
|
24
|
+
attribute :qualifier, Types::Strict::String.meta(omittable: true)
|
25
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
26
|
+
attribute :appliesTo, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
|
27
|
+
attribute :script, DescriptiveValue.optional.meta(omittable: true)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class RelatedResource < Struct
|
6
|
+
# The relationship of the related resource to the described resource.
|
7
|
+
attribute :type, Types::Strict::String.meta(omittable: true)
|
8
|
+
attribute :title, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
9
|
+
attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
|
10
|
+
attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
|
11
|
+
attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
|
+
attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
|
13
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
14
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
15
|
+
attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
16
|
+
# Stanford persistent URL associated with the related resource.
|
17
|
+
attribute :purl, Types::Strict::String.meta(omittable: true)
|
18
|
+
attribute :access, DescriptiveAccessMetadata.optional.meta(omittable: true)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -25,7 +25,7 @@ module Cocina
|
|
25
25
|
attribute :type, Types::Strict::String.enum(*RequestDRO::TYPES)
|
26
26
|
attribute :label, Types::Strict::String
|
27
27
|
attribute :version, Types::Strict::Integer
|
28
|
-
attribute
|
28
|
+
attribute :access, DROAccess.optional.meta(omittable: true)
|
29
29
|
attribute(:administrative, Administrative.default { Administrative.new })
|
30
30
|
attribute :description, Description.optional.meta(omittable: true)
|
31
31
|
attribute(:identification, RequestIdentification.default { RequestIdentification.new })
|
@@ -5,8 +5,7 @@ module Cocina
|
|
5
5
|
class RequestDROStructural < Struct
|
6
6
|
attribute :contains, Types::Strict::Array.of(RequestFileSet).meta(omittable: true)
|
7
7
|
attribute :hasMemberOrders, Types::Strict::Array.of(Sequence).meta(omittable: true)
|
8
|
-
|
9
|
-
attribute :isMemberOf, Types::Strict::String.meta(omittable: true)
|
8
|
+
attribute :isMemberOf, Types::Strict::Array.of(Druid).meta(omittable: true)
|
10
9
|
attribute :hasAgreement, Types::Strict::String.meta(omittable: true)
|
11
10
|
end
|
12
11
|
end
|
@@ -16,7 +16,7 @@ module Cocina
|
|
16
16
|
attribute :externalIdentifier, Types::Strict::String.meta(omittable: true)
|
17
17
|
attribute :use, Types::Strict::String.meta(omittable: true)
|
18
18
|
attribute :hasMessageDigests, Types::Strict::Array.of(MessageDigest).default([].freeze)
|
19
|
-
attribute(:access,
|
19
|
+
attribute(:access, FileAccess.default { FileAccess.new })
|
20
20
|
attribute(:administrative, FileAdministrative.default { FileAdministrative.new })
|
21
21
|
attribute :presentation, Presentation.optional.meta(omittable: true)
|
22
22
|
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class RequestIdentification < Struct
|
6
|
+
# Unique identifier in some other system. This is because a large proportion of what is deposited in SDR, historically and currently, are representations of objects that are also represented in other systems. For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to look for the original item if you're looking at its SDR representation. The format is: "namespace:identifier"
|
7
|
+
|
6
8
|
# example: sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026
|
7
9
|
attribute :sourceId, Types::Strict::String
|
8
10
|
attribute :catalogLinks, Types::Strict::Array.of(CatalogLink).meta(omittable: true)
|
data/lib/cocina/models/source.rb
CHANGED
@@ -9,6 +9,7 @@ module Cocina
|
|
9
9
|
attribute :uri, Types::Strict::String.meta(omittable: true)
|
10
10
|
# String describing the value source.
|
11
11
|
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class Standard < Struct
|
6
|
+
# Code representing the standard or encoding.
|
7
|
+
attribute :code, Types::Strict::String.meta(omittable: true)
|
8
|
+
# URI for the standard or encoding.
|
9
|
+
attribute :uri, Types::Strict::String.meta(omittable: true)
|
10
|
+
# String describing the standard or encoding.
|
11
|
+
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
|
+
attribute :source, Source.optional.meta(omittable: true)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/openapi.yml
CHANGED
@@ -94,7 +94,7 @@ paths:
|
|
94
94
|
components:
|
95
95
|
schemas:
|
96
96
|
Access:
|
97
|
-
description: Access metadata
|
97
|
+
description: Access metadata for collections
|
98
98
|
type: object
|
99
99
|
additionalProperties: false
|
100
100
|
properties:
|
@@ -254,7 +254,7 @@ components:
|
|
254
254
|
$ref: '#/components/schemas/CatalogLink'
|
255
255
|
Contributor:
|
256
256
|
description: Property model for describing agents contributing in some way to
|
257
|
-
the creation and history of the resource
|
257
|
+
the creation and history of the resource.
|
258
258
|
type: object
|
259
259
|
additionalProperties: false
|
260
260
|
properties:
|
@@ -267,7 +267,8 @@ components:
|
|
267
267
|
description: Entity type of the contributor (person, organization, etc.).
|
268
268
|
type: string
|
269
269
|
status:
|
270
|
-
description: Status of the contributor relative to other parallel contributors
|
270
|
+
description: Status of the contributor relative to other parallel contributors
|
271
|
+
(e.g. the primary author among a group of contributors).
|
271
272
|
type: string
|
272
273
|
role:
|
273
274
|
description: Relationships of the contributor to the resource or to an event
|
@@ -275,90 +276,16 @@ components:
|
|
275
276
|
type: array
|
276
277
|
items:
|
277
278
|
$ref: "#/components/schemas/DescriptiveValue"
|
278
|
-
|
279
|
-
|
280
|
-
type: object
|
281
|
-
additionalProperties: false
|
282
|
-
properties:
|
283
|
-
contributor:
|
284
|
-
type: array
|
285
|
-
items:
|
286
|
-
$ref: "#/components/schemas/Contributor"
|
287
|
-
event:
|
288
|
-
type: array
|
289
|
-
items:
|
290
|
-
$ref: "#/components/schemas/Event"
|
291
|
-
language:
|
279
|
+
identifier:
|
280
|
+
description: Identifiers and URIs associated with the contributor entity.
|
292
281
|
type: array
|
293
282
|
items:
|
294
283
|
$ref: "#/components/schemas/DescriptiveValue"
|
295
284
|
note:
|
285
|
+
description: Other information associated with the contributor.
|
296
286
|
type: array
|
297
287
|
items:
|
298
288
|
$ref: "#/components/schemas/DescriptiveValue"
|
299
|
-
DescriptiveBasicValue:
|
300
|
-
description: Value model for descriptive elements without recursive properties.
|
301
|
-
type: object
|
302
|
-
additionalProperties: false
|
303
|
-
properties:
|
304
|
-
value:
|
305
|
-
description: String value of the descriptive element.
|
306
|
-
type: string
|
307
|
-
type:
|
308
|
-
description: Type of value provided by the descriptive element.
|
309
|
-
type: string
|
310
|
-
status:
|
311
|
-
description: Status of the descriptive element relative to other instances
|
312
|
-
of the element.
|
313
|
-
type: string
|
314
|
-
code:
|
315
|
-
description: Code value of the descriptive element.
|
316
|
-
type: string
|
317
|
-
uri:
|
318
|
-
description: URI value of the descriptive element.
|
319
|
-
type: string
|
320
|
-
format: uri
|
321
|
-
standard:
|
322
|
-
description: Descriptive or content standard to which the value conforms.
|
323
|
-
type: array
|
324
|
-
items:
|
325
|
-
type: string
|
326
|
-
encoding:
|
327
|
-
description: Encoding schema, standard, or syntax to which the value conforms.
|
328
|
-
type: array
|
329
|
-
items:
|
330
|
-
type: string
|
331
|
-
source:
|
332
|
-
$ref: "#/components/schemas/Source"
|
333
|
-
DescriptiveStructuredValue:
|
334
|
-
description: Value model for descriptive elements structured as typed values.
|
335
|
-
type: object
|
336
|
-
additionalProperties: false
|
337
|
-
properties:
|
338
|
-
structuredValue:
|
339
|
-
type: array
|
340
|
-
items:
|
341
|
-
$ref: "#/components/schemas/DescriptiveBasicValue"
|
342
|
-
DescriptiveValue:
|
343
|
-
description: Default value model for descriptive elements.
|
344
|
-
type: object
|
345
|
-
additionalProperties: false
|
346
|
-
allOf:
|
347
|
-
- $ref: "#/components/schemas/DescriptiveBasicValue"
|
348
|
-
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
349
|
-
- $ref: "#/components/schemas/AppliesTo"
|
350
|
-
DescriptiveValueRequired:
|
351
|
-
type: object
|
352
|
-
additionalProperties: false
|
353
|
-
allOf:
|
354
|
-
- $ref: "#/components/schemas/DescriptiveValue"
|
355
|
-
- anyOf:
|
356
|
-
- type: object
|
357
|
-
required:
|
358
|
-
- value
|
359
|
-
- type: object
|
360
|
-
required:
|
361
|
-
- structuredValue
|
362
289
|
Description:
|
363
290
|
type: object
|
364
291
|
additionalProperties: false
|
@@ -387,17 +314,23 @@ components:
|
|
387
314
|
items:
|
388
315
|
$ref: "#/components/schemas/DescriptiveValue"
|
389
316
|
language:
|
390
|
-
description: Languages, scripts, and notations used in all or
|
317
|
+
description: Languages, scripts, symbolic systems, and notations used in all or
|
318
|
+
part of a resource.
|
391
319
|
type: array
|
392
320
|
items:
|
393
|
-
$ref: "#/components/schemas/
|
321
|
+
$ref: "#/components/schemas/Language"
|
394
322
|
note:
|
395
323
|
description: Additional information relevant to a resource.
|
396
324
|
type: array
|
397
325
|
items:
|
398
326
|
$ref: "#/components/schemas/DescriptiveValue"
|
399
327
|
identifier:
|
400
|
-
description:
|
328
|
+
description: Identifiers and URIs associated with the resource.
|
329
|
+
type: array
|
330
|
+
items:
|
331
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
332
|
+
subject:
|
333
|
+
description: Terms associated with the intellectual content of the resource.
|
401
334
|
type: array
|
402
335
|
items:
|
403
336
|
$ref: "#/components/schemas/DescriptiveValue"
|
@@ -405,11 +338,13 @@ components:
|
|
405
338
|
description: Stanford persistent URL associated with the resource.
|
406
339
|
type: string
|
407
340
|
format: uri
|
408
|
-
|
409
|
-
|
341
|
+
access:
|
342
|
+
$ref: "#/components/schemas/DescriptiveAccessMetadata"
|
343
|
+
relatedResource:
|
344
|
+
description: Other resources associated with the described resource.
|
410
345
|
type: array
|
411
346
|
items:
|
412
|
-
$ref: "#/components/schemas/
|
347
|
+
$ref: "#/components/schemas/RelatedResource"
|
413
348
|
marcEncodedData:
|
414
349
|
description: Data about the resource represented in MARC fixed fields and codes.
|
415
350
|
type: array
|
@@ -419,6 +354,154 @@ components:
|
|
419
354
|
$ref: "#/components/schemas/DescriptiveAdminMetadata"
|
420
355
|
required:
|
421
356
|
- title
|
357
|
+
DescriptiveAccessMetadata:
|
358
|
+
description: Information about how to access digital and physical versions of the object.
|
359
|
+
type: object
|
360
|
+
additionalProperties: false
|
361
|
+
properties:
|
362
|
+
url:
|
363
|
+
description: URLs where the resource may be accessed in full or part.
|
364
|
+
type: array
|
365
|
+
items:
|
366
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
367
|
+
physicalLocation:
|
368
|
+
description: Location of a physical version of the resource.
|
369
|
+
type: array
|
370
|
+
items:
|
371
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
372
|
+
accessContact:
|
373
|
+
description: The library, organization, or person responsible for access to the resource.
|
374
|
+
type: array
|
375
|
+
items:
|
376
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
377
|
+
digitalRepository:
|
378
|
+
description: The digital repositories that hold the resource.
|
379
|
+
type: array
|
380
|
+
items:
|
381
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
382
|
+
note:
|
383
|
+
description: Other information related to accessing the resource.
|
384
|
+
type: array
|
385
|
+
items:
|
386
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
387
|
+
DescriptiveAdminMetadata:
|
388
|
+
description: Information about this resource description.
|
389
|
+
type: object
|
390
|
+
additionalProperties: false
|
391
|
+
properties:
|
392
|
+
contributor:
|
393
|
+
description: Contributors to this resource description.
|
394
|
+
type: array
|
395
|
+
items:
|
396
|
+
$ref: "#/components/schemas/Contributor"
|
397
|
+
event:
|
398
|
+
description: Events in the history of this resource description.
|
399
|
+
type: array
|
400
|
+
items:
|
401
|
+
$ref: "#/components/schemas/Event"
|
402
|
+
language:
|
403
|
+
description: Languages, scripts, symbolic systems, and notations used
|
404
|
+
in this resource description.
|
405
|
+
type: array
|
406
|
+
items:
|
407
|
+
$ref: "#/components/schemas/Language"
|
408
|
+
note:
|
409
|
+
description: Other information related to this resource description.
|
410
|
+
type: array
|
411
|
+
items:
|
412
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
413
|
+
standard:
|
414
|
+
# description: Descriptive or content standard to which this resource description conforms.
|
415
|
+
$ref: "#/components/schemas/Standard"
|
416
|
+
identifier:
|
417
|
+
description: Identifiers associated with this resource description.
|
418
|
+
type: array
|
419
|
+
items:
|
420
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
421
|
+
DescriptiveBasicValue:
|
422
|
+
description: Basic value model for descriptive elements.
|
423
|
+
type: object
|
424
|
+
# additionalProperties breaks the validator, unclear as to why.
|
425
|
+
# additionalProperties: false
|
426
|
+
allOf:
|
427
|
+
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
428
|
+
- $ref: "#/components/schemas/DescriptiveParallelValue"
|
429
|
+
- type: object
|
430
|
+
additionalProperties: false
|
431
|
+
properties:
|
432
|
+
value:
|
433
|
+
description: String value of the descriptive element.
|
434
|
+
type: string
|
435
|
+
type:
|
436
|
+
description: Type of value provided by the descriptive element.
|
437
|
+
type: string
|
438
|
+
status:
|
439
|
+
description: Status of the descriptive element value relative to other instances
|
440
|
+
of the element.
|
441
|
+
type: string
|
442
|
+
code:
|
443
|
+
description: Code value of the descriptive element.
|
444
|
+
type: string
|
445
|
+
uri:
|
446
|
+
description: URI value of the descriptive element.
|
447
|
+
type: string
|
448
|
+
format: uri
|
449
|
+
standard:
|
450
|
+
# description: Descriptive or content standard to which the value conforms.
|
451
|
+
$ref: "#/components/schemas/Standard"
|
452
|
+
encoding:
|
453
|
+
# description: Encoding schema, standard, or syntax to which the value conforms.
|
454
|
+
$ref: "#/components/schemas/Standard"
|
455
|
+
source:
|
456
|
+
$ref: "#/components/schemas/Source"
|
457
|
+
displayLabel:
|
458
|
+
description: The preferred display label to use for the descriptive element in access systems.
|
459
|
+
type: string
|
460
|
+
qualifier:
|
461
|
+
description: A term providing information about the circumstances of the statement (e.g., approximate dates).
|
462
|
+
type: string
|
463
|
+
note:
|
464
|
+
description: Other information related to the descriptive element.
|
465
|
+
type: array
|
466
|
+
items:
|
467
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
468
|
+
DescriptiveParallelValue:
|
469
|
+
description: Value model for multiple representations of the same information (e.g. in different languages).
|
470
|
+
type: object
|
471
|
+
additionalProperties: false
|
472
|
+
properties:
|
473
|
+
parallelValue:
|
474
|
+
type: array
|
475
|
+
items:
|
476
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
477
|
+
DescriptiveStructuredValue:
|
478
|
+
description: Value model for descriptive elements structured as typed, ordered values.
|
479
|
+
type: object
|
480
|
+
additionalProperties: false
|
481
|
+
properties:
|
482
|
+
structuredValue:
|
483
|
+
type: array
|
484
|
+
items:
|
485
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
486
|
+
DescriptiveValue:
|
487
|
+
description: Default value model for descriptive elements.
|
488
|
+
type: object
|
489
|
+
additionalProperties: false
|
490
|
+
allOf:
|
491
|
+
- $ref: "#/components/schemas/DescriptiveBasicValue"
|
492
|
+
- $ref: "#/components/schemas/AppliesTo"
|
493
|
+
DescriptiveValueRequired:
|
494
|
+
type: object
|
495
|
+
additionalProperties: false
|
496
|
+
allOf:
|
497
|
+
- $ref: "#/components/schemas/DescriptiveValue"
|
498
|
+
- anyOf:
|
499
|
+
- type: object
|
500
|
+
required:
|
501
|
+
- value
|
502
|
+
- type: object
|
503
|
+
required:
|
504
|
+
- structuredValue
|
422
505
|
DRO:
|
423
506
|
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.
|
424
507
|
type: object
|
@@ -484,6 +567,10 @@ components:
|
|
484
567
|
- 'citation-only'
|
485
568
|
- 'dark'
|
486
569
|
default: 'dark'
|
570
|
+
controlledDigitalLending:
|
571
|
+
description: Available for controlled digital lending.
|
572
|
+
type: boolean
|
573
|
+
default: false
|
487
574
|
copyright:
|
488
575
|
description: The human readable copyright statement that applies
|
489
576
|
example: Copyright World Trade Organization
|
@@ -537,7 +624,10 @@ components:
|
|
537
624
|
items:
|
538
625
|
$ref: '#/components/schemas/Sequence'
|
539
626
|
isMemberOf:
|
540
|
-
|
627
|
+
description: Collections that this DRO is a member of
|
628
|
+
type: array
|
629
|
+
items:
|
630
|
+
$ref: '#/components/schemas/Druid'
|
541
631
|
hasAgreement:
|
542
632
|
description: Agreement that covers the deposit of the DRO into SDR.
|
543
633
|
type: string
|
@@ -638,7 +728,7 @@ components:
|
|
638
728
|
items:
|
639
729
|
$ref: '#/components/schemas/MessageDigest'
|
640
730
|
access:
|
641
|
-
$ref: '#/components/schemas/
|
731
|
+
$ref: '#/components/schemas/FileAccess'
|
642
732
|
administrative:
|
643
733
|
$ref: '#/components/schemas/FileAdministrative'
|
644
734
|
presentation:
|
@@ -652,6 +742,44 @@ components:
|
|
652
742
|
- access
|
653
743
|
- administrative
|
654
744
|
- hasMessageDigests
|
745
|
+
FileAccess:
|
746
|
+
description: Access metadata for files
|
747
|
+
type: object
|
748
|
+
additionalProperties: false
|
749
|
+
properties:
|
750
|
+
access:
|
751
|
+
description: Access level
|
752
|
+
type: string
|
753
|
+
enum:
|
754
|
+
- 'world'
|
755
|
+
- 'stanford'
|
756
|
+
- 'location-based'
|
757
|
+
- 'citation-only'
|
758
|
+
- 'dark'
|
759
|
+
default: 'dark'
|
760
|
+
controlledDigitalLending:
|
761
|
+
description: Available for controlled digital lending.
|
762
|
+
type: boolean
|
763
|
+
default: false
|
764
|
+
download:
|
765
|
+
description: Download access level for a file
|
766
|
+
type: string
|
767
|
+
enum:
|
768
|
+
- 'world'
|
769
|
+
- 'stanford'
|
770
|
+
- 'location-based'
|
771
|
+
- 'none'
|
772
|
+
default: 'none'
|
773
|
+
readLocation:
|
774
|
+
description: If access is "location-based", which location should have access.
|
775
|
+
type: string
|
776
|
+
enum:
|
777
|
+
- 'spec'
|
778
|
+
- 'music'
|
779
|
+
- 'ars'
|
780
|
+
- 'art'
|
781
|
+
- 'hoover'
|
782
|
+
- 'm&m'
|
655
783
|
FileAdministrative:
|
656
784
|
type: object
|
657
785
|
additionalProperties: false
|
@@ -714,19 +842,27 @@ components:
|
|
714
842
|
additionalProperties: false
|
715
843
|
properties:
|
716
844
|
sourceId:
|
717
|
-
|
718
|
-
description: >
|
719
|
-
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
720
|
-
historically and currently, are representations of objects that are also represented in other systems.
|
721
|
-
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
722
|
-
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
723
|
-
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
724
|
-
look for the original item if you're looking at its SDR representation.
|
725
|
-
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
845
|
+
$ref: '#/components/schemas/SourceId'
|
726
846
|
catalogLinks:
|
727
847
|
type: array
|
728
848
|
items:
|
729
849
|
$ref: '#/components/schemas/CatalogLink'
|
850
|
+
Language:
|
851
|
+
description: Languages, scripts, symbolic systems, and notations used in all
|
852
|
+
or part of a resource.
|
853
|
+
type: object
|
854
|
+
additionalProperties: false
|
855
|
+
allOf:
|
856
|
+
- $ref: '#/components/schemas/DescriptiveValue'
|
857
|
+
- type: object
|
858
|
+
# additionalProperties breaks the validator, presumably because it can't
|
859
|
+
# conform to other schemas (allOf) and not have additionalProperties
|
860
|
+
# additionalProperties: false
|
861
|
+
properties:
|
862
|
+
script:
|
863
|
+
$ref: '#/components/schemas/DescriptiveValue'
|
864
|
+
# description: An alphabet or other notation used to represent a
|
865
|
+
# language or other symbolic system associated with the resource.
|
730
866
|
MessageDigest:
|
731
867
|
description: The output of the message digest algorithm.
|
732
868
|
type: object
|
@@ -755,6 +891,63 @@ components:
|
|
755
891
|
width:
|
756
892
|
description: Width in pixels
|
757
893
|
type: integer
|
894
|
+
RelatedResource:
|
895
|
+
description: Other resource associated with the described resource.
|
896
|
+
type: object
|
897
|
+
additionalProperties: false
|
898
|
+
properties:
|
899
|
+
type:
|
900
|
+
description: The relationship of the related resource to the described resource.
|
901
|
+
type: string
|
902
|
+
title:
|
903
|
+
description: Titles of the related resource.
|
904
|
+
type: array
|
905
|
+
items:
|
906
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
907
|
+
contributor:
|
908
|
+
description: Agents contributing in some way to the creation and history of the
|
909
|
+
related resource.
|
910
|
+
type: array
|
911
|
+
items:
|
912
|
+
$ref: "#/components/schemas/Contributor"
|
913
|
+
event:
|
914
|
+
description: Events in the history of the related resource.
|
915
|
+
type: array
|
916
|
+
items:
|
917
|
+
$ref: "#/components/schemas/Event"
|
918
|
+
form:
|
919
|
+
description: Characteristics of the related resource's physical, digital, and intellectual
|
920
|
+
form and genre.
|
921
|
+
type: array
|
922
|
+
items:
|
923
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
924
|
+
language:
|
925
|
+
description: Languages, scripts, symbolic systems, and notations used in all or
|
926
|
+
part of a related resource.
|
927
|
+
type: array
|
928
|
+
items:
|
929
|
+
$ref: "#/components/schemas/Language"
|
930
|
+
note:
|
931
|
+
description: Additional information relevant to a related resource.
|
932
|
+
type: array
|
933
|
+
items:
|
934
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
935
|
+
identifier:
|
936
|
+
description: Identifiers and URIs associated with the related resource.
|
937
|
+
type: array
|
938
|
+
items:
|
939
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
940
|
+
subject:
|
941
|
+
description: Terms associated with the intellectual content of the related resource.
|
942
|
+
type: array
|
943
|
+
items:
|
944
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
945
|
+
purl:
|
946
|
+
description: Stanford persistent URL associated with the related resource.
|
947
|
+
type: string
|
948
|
+
format: uri
|
949
|
+
access:
|
950
|
+
$ref: "#/components/schemas/DescriptiveAccessMetadata"
|
758
951
|
ReleaseTag:
|
759
952
|
description: A tag that indicates the item or collection should be released.
|
760
953
|
type: object
|
@@ -879,7 +1072,6 @@ components:
|
|
879
1072
|
geographic:
|
880
1073
|
$ref: '#/components/schemas/Geographic'
|
881
1074
|
required:
|
882
|
-
- access
|
883
1075
|
- administrative
|
884
1076
|
- identification
|
885
1077
|
- label
|
@@ -899,7 +1091,10 @@ components:
|
|
899
1091
|
items:
|
900
1092
|
$ref: '#/components/schemas/Sequence'
|
901
1093
|
isMemberOf:
|
902
|
-
|
1094
|
+
description: Collections that this DRO is a member of
|
1095
|
+
type: array
|
1096
|
+
items:
|
1097
|
+
$ref: '#/components/schemas/Druid'
|
903
1098
|
hasAgreement:
|
904
1099
|
type: string
|
905
1100
|
RequestFile:
|
@@ -929,7 +1124,7 @@ components:
|
|
929
1124
|
items:
|
930
1125
|
$ref: '#/components/schemas/MessageDigest'
|
931
1126
|
access:
|
932
|
-
$ref: '#/components/schemas/
|
1127
|
+
$ref: '#/components/schemas/FileAccess'
|
933
1128
|
administrative:
|
934
1129
|
$ref: '#/components/schemas/FileAdministrative'
|
935
1130
|
presentation:
|
@@ -976,15 +1171,7 @@ components:
|
|
976
1171
|
additionalProperties: false
|
977
1172
|
properties:
|
978
1173
|
sourceId:
|
979
|
-
|
980
|
-
description: >
|
981
|
-
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
982
|
-
historically and currently, are representations of objects that are also represented in other systems.
|
983
|
-
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
984
|
-
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
985
|
-
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
986
|
-
look for the original item if you're looking at its SDR representation.
|
987
|
-
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
1174
|
+
$ref: '#/components/schemas/SourceId'
|
988
1175
|
catalogLinks:
|
989
1176
|
type: array
|
990
1177
|
items:
|
@@ -1008,8 +1195,8 @@ components:
|
|
1008
1195
|
- right-to-left
|
1009
1196
|
- left-to-right
|
1010
1197
|
Source:
|
1011
|
-
description: Property model for indicating the vocabulary, authority, or
|
1012
|
-
origin for a term, code, or identifier.
|
1198
|
+
description: Property model for indicating the vocabulary, authority, or
|
1199
|
+
other origin for a term, code, or identifier.
|
1013
1200
|
type: object
|
1014
1201
|
additionalProperties: false
|
1015
1202
|
properties:
|
@@ -1023,3 +1210,42 @@ components:
|
|
1023
1210
|
value:
|
1024
1211
|
description: String describing the value source.
|
1025
1212
|
type: string
|
1213
|
+
note:
|
1214
|
+
description: Other information related to the value source.
|
1215
|
+
type: array
|
1216
|
+
items:
|
1217
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
1218
|
+
Standard:
|
1219
|
+
description: Property model for indicating the encoding, standard, or syntax
|
1220
|
+
to which a value conforms.
|
1221
|
+
type: object
|
1222
|
+
additionalProperties: false
|
1223
|
+
properties:
|
1224
|
+
code:
|
1225
|
+
description: Code representing the standard or encoding.
|
1226
|
+
type: string
|
1227
|
+
uri:
|
1228
|
+
description: URI for the standard or encoding.
|
1229
|
+
type: string
|
1230
|
+
format: uri
|
1231
|
+
value:
|
1232
|
+
description: String describing the standard or encoding.
|
1233
|
+
type: string
|
1234
|
+
note:
|
1235
|
+
description: Other information related to the standard or encoding.
|
1236
|
+
type: array
|
1237
|
+
items:
|
1238
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
1239
|
+
source:
|
1240
|
+
$ref: "#/components/schemas/Source"
|
1241
|
+
SourceId:
|
1242
|
+
type: string
|
1243
|
+
pattern: '^.+:.+$'
|
1244
|
+
description: >
|
1245
|
+
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
1246
|
+
historically and currently, are representations of objects that are also represented in other systems.
|
1247
|
+
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
1248
|
+
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
1249
|
+
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
1250
|
+
look for the original item if you're looking at its SDR representation. The format is: "namespace:identifier"
|
1251
|
+
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|