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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +63 -1
  3. data/README.md +11 -0
  4. data/cocina-models.gemspec +1 -0
  5. data/docs/maps/DRO.json +9 -2
  6. data/lib/cocina/generator/datatype.rb +22 -0
  7. data/lib/cocina/generator/generator.rb +11 -3
  8. data/lib/cocina/models/contributor.rb +3 -1
  9. data/lib/cocina/models/description.rb +4 -2
  10. data/lib/cocina/models/descriptive_access_metadata.rb +13 -0
  11. data/lib/cocina/models/descriptive_admin_metadata.rb +3 -1
  12. data/lib/cocina/models/descriptive_basic_value.rb +10 -3
  13. data/lib/cocina/models/descriptive_parallel_value.rb +9 -0
  14. data/lib/cocina/models/descriptive_structured_value.rb +1 -1
  15. data/lib/cocina/models/descriptive_value.rb +10 -4
  16. data/lib/cocina/models/descriptive_value_required.rb +10 -4
  17. data/lib/cocina/models/dro_access.rb +2 -0
  18. data/lib/cocina/models/dro_structural.rb +1 -2
  19. data/lib/cocina/models/druid.rb +9 -0
  20. data/lib/cocina/models/event.rb +1 -1
  21. data/lib/cocina/models/file.rb +1 -1
  22. data/lib/cocina/models/file_access.rb +16 -0
  23. data/lib/cocina/models/identification.rb +2 -0
  24. data/lib/cocina/models/language.rb +30 -0
  25. data/lib/cocina/models/related_resource.rb +21 -0
  26. data/lib/cocina/models/request_dro.rb +1 -1
  27. data/lib/cocina/models/request_dro_structural.rb +1 -2
  28. data/lib/cocina/models/request_file.rb +1 -1
  29. data/lib/cocina/models/request_identification.rb +2 -0
  30. data/lib/cocina/models/source.rb +1 -0
  31. data/lib/cocina/models/source_id.rb +9 -0
  32. data/lib/cocina/models/standard.rb +16 -0
  33. data/lib/cocina/models/version.rb +1 -1
  34. data/openapi.yml +337 -111
  35. 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(:access, DROAccess.default { DROAccess.new })
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
- # example: druid:bc123df4567
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, Access.default { Access.new })
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)
@@ -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,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cocina
4
+ module Models
5
+ SourceId = Types::String.constrained(
6
+ format: /^.+:.+$/i
7
+ )
8
+ end
9
+ 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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Cocina
4
4
  module Models
5
- VERSION = '0.34.0'
5
+ VERSION = '0.38.0'
6
6
  end
7
7
  end
@@ -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
- DescriptiveAdminMetadata:
279
- description: Information about this description of the resource.
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 part of a resource.
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/DescriptiveValue"
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: Unique strings associated with the resource.
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
- url:
409
- description: URLs where the resource may be accessed in full or part.
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/DescriptiveValue"
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
- $ref: '#/components/schemas/Druid'
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/Access'
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
- type: string
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
- $ref: '#/components/schemas/Druid'
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/Access'
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
- type: string
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 other
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'