cocina-models 0.31.0 → 0.34.1
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 +53 -2
- data/README.md +8 -13
- data/cocina-models.gemspec +3 -3
- data/docs/index.html +20 -0
- data/docs/maps/DRO.json +1 -1
- data/exe/generator +1 -1
- data/lib/cocina/generator.rb +0 -11
- data/lib/cocina/generator/generator.rb +3 -0
- data/lib/cocina/generator/schema_value.rb +2 -2
- data/lib/cocina/models.rb +5 -3
- data/lib/cocina/models/access.rb +4 -0
- data/lib/cocina/models/admin_policy_administrative.rb +1 -1
- data/lib/cocina/models/administrative.rb +1 -1
- data/lib/cocina/models/dro.rb +1 -1
- data/lib/cocina/models/dro_access.rb +7 -1
- data/lib/cocina/models/event.rb +1 -1
- data/lib/cocina/models/file.rb +1 -1
- data/lib/cocina/models/identification.rb +2 -0
- data/lib/cocina/models/request_collection.rb +1 -1
- data/lib/cocina/models/request_dro.rb +2 -2
- data/lib/cocina/models/request_identification.rb +13 -0
- data/lib/cocina/models/sequence.rb +1 -0
- data/lib/cocina/models/version.rb +1 -1
- data/openapi.yml +160 -32
- metadata +14 -17
- 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
@@ -3,6 +3,7 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class Sequence < Struct
|
6
|
+
attribute :members, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
|
6
7
|
# The direction that a sequence of canvases should be displayed to the user
|
7
8
|
attribute :viewingDirection, Types::Strict::String.enum('right-to-left', 'left-to-right').meta(omittable: true)
|
8
9
|
end
|
data/openapi.yml
CHANGED
@@ -96,6 +96,7 @@ components:
|
|
96
96
|
Access:
|
97
97
|
description: Access metadata
|
98
98
|
type: object
|
99
|
+
additionalProperties: false
|
99
100
|
properties:
|
100
101
|
access:
|
101
102
|
description: Access level
|
@@ -107,8 +108,28 @@ components:
|
|
107
108
|
- 'citation-only'
|
108
109
|
- 'dark'
|
109
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'
|
110
130
|
Administrative:
|
111
131
|
type: object
|
132
|
+
additionalProperties: false
|
112
133
|
properties:
|
113
134
|
hasAdminPolicy:
|
114
135
|
$ref: '#/components/schemas/Druid'
|
@@ -121,8 +142,11 @@ components:
|
|
121
142
|
description: Administrative or Internal project this resource is a part of
|
122
143
|
example: Google Books
|
123
144
|
type: string
|
145
|
+
required:
|
146
|
+
- hasAdminPolicy
|
124
147
|
AdminPolicy:
|
125
148
|
type: object
|
149
|
+
additionalProperties: false
|
126
150
|
properties:
|
127
151
|
type:
|
128
152
|
type: string
|
@@ -140,13 +164,14 @@ components:
|
|
140
164
|
description:
|
141
165
|
$ref: '#/components/schemas/Description'
|
142
166
|
required:
|
167
|
+
- administrative
|
143
168
|
- externalIdentifier
|
144
169
|
- label
|
145
170
|
- type
|
146
171
|
- version
|
147
|
-
- administrative
|
148
172
|
AdminPolicyAdministrative:
|
149
173
|
type: object
|
174
|
+
additionalProperties: false
|
150
175
|
properties:
|
151
176
|
defaultObjectRights:
|
152
177
|
type: string
|
@@ -155,10 +180,13 @@ components:
|
|
155
180
|
type: string
|
156
181
|
hasAdminPolicy:
|
157
182
|
type: string
|
183
|
+
required:
|
184
|
+
- hasAdminPolicy
|
158
185
|
AppliesTo:
|
159
186
|
description: Property model for indicating the parts, aspects, or versions of the resource to which a
|
160
187
|
descriptive element is applicable.
|
161
188
|
type: object
|
189
|
+
additionalProperties: false
|
162
190
|
properties:
|
163
191
|
appliesTo:
|
164
192
|
type: array
|
@@ -166,6 +194,7 @@ components:
|
|
166
194
|
$ref: "#/components/schemas/DescriptiveBasicValue"
|
167
195
|
CatalogLink:
|
168
196
|
type: object
|
197
|
+
additionalProperties: false
|
169
198
|
required:
|
170
199
|
- catalog
|
171
200
|
- catalogRecordId
|
@@ -181,6 +210,7 @@ components:
|
|
181
210
|
Collection:
|
182
211
|
description: A group of Digital Repository Objects that indicate some type of conceptual grouping within the domain that is worth reusing across the system.
|
183
212
|
type: object
|
213
|
+
additionalProperties: false
|
184
214
|
properties:
|
185
215
|
type:
|
186
216
|
description: The content type of the Collection. Selected from an established set of values.
|
@@ -216,6 +246,7 @@ components:
|
|
216
246
|
- access
|
217
247
|
CollectionIdentification:
|
218
248
|
type: object
|
249
|
+
additionalProperties: false
|
219
250
|
properties:
|
220
251
|
catalogLinks:
|
221
252
|
type: array
|
@@ -225,6 +256,7 @@ components:
|
|
225
256
|
description: Property model for describing agents contributing in some way to
|
226
257
|
the creation and history of the resource
|
227
258
|
type: object
|
259
|
+
additionalProperties: false
|
228
260
|
properties:
|
229
261
|
name:
|
230
262
|
description: Names associated with a contributor.
|
@@ -246,6 +278,7 @@ components:
|
|
246
278
|
DescriptiveAdminMetadata:
|
247
279
|
description: Information about this description of the resource.
|
248
280
|
type: object
|
281
|
+
additionalProperties: false
|
249
282
|
properties:
|
250
283
|
contributor:
|
251
284
|
type: array
|
@@ -266,6 +299,7 @@ components:
|
|
266
299
|
DescriptiveBasicValue:
|
267
300
|
description: Value model for descriptive elements without recursive properties.
|
268
301
|
type: object
|
302
|
+
additionalProperties: false
|
269
303
|
properties:
|
270
304
|
value:
|
271
305
|
description: String value of the descriptive element.
|
@@ -299,6 +333,7 @@ components:
|
|
299
333
|
DescriptiveStructuredValue:
|
300
334
|
description: Value model for descriptive elements structured as typed values.
|
301
335
|
type: object
|
336
|
+
additionalProperties: false
|
302
337
|
properties:
|
303
338
|
structuredValue:
|
304
339
|
type: array
|
@@ -307,12 +342,14 @@ components:
|
|
307
342
|
DescriptiveValue:
|
308
343
|
description: Default value model for descriptive elements.
|
309
344
|
type: object
|
345
|
+
additionalProperties: false
|
310
346
|
allOf:
|
311
347
|
- $ref: "#/components/schemas/DescriptiveBasicValue"
|
312
348
|
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
313
349
|
- $ref: "#/components/schemas/AppliesTo"
|
314
350
|
DescriptiveValueRequired:
|
315
351
|
type: object
|
352
|
+
additionalProperties: false
|
316
353
|
allOf:
|
317
354
|
- $ref: "#/components/schemas/DescriptiveValue"
|
318
355
|
- anyOf:
|
@@ -320,10 +357,11 @@ components:
|
|
320
357
|
required:
|
321
358
|
- value
|
322
359
|
- type: object
|
323
|
-
|
360
|
+
required:
|
324
361
|
- structuredValue
|
325
362
|
Description:
|
326
363
|
type: object
|
364
|
+
additionalProperties: false
|
327
365
|
properties:
|
328
366
|
title:
|
329
367
|
description: Titles of the resource.
|
@@ -384,6 +422,7 @@ components:
|
|
384
422
|
DRO:
|
385
423
|
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.
|
386
424
|
type: object
|
425
|
+
additionalProperties: false
|
387
426
|
properties:
|
388
427
|
type:
|
389
428
|
description: The content type of the DRO. Selected from an established set of values.
|
@@ -426,13 +465,15 @@ components:
|
|
426
465
|
geographic:
|
427
466
|
$ref: '#/components/schemas/Geographic'
|
428
467
|
required:
|
468
|
+
- access
|
469
|
+
- administrative
|
429
470
|
- externalIdentifier
|
430
471
|
- label
|
431
472
|
- type
|
432
473
|
- version
|
433
|
-
- access
|
434
474
|
DROAccess:
|
435
475
|
type: object
|
476
|
+
additionalProperties: false
|
436
477
|
properties:
|
437
478
|
access:
|
438
479
|
type: string
|
@@ -447,15 +488,43 @@ components:
|
|
447
488
|
description: The human readable copyright statement that applies
|
448
489
|
example: Copyright World Trade Organization
|
449
490
|
type: string
|
491
|
+
embargo:
|
492
|
+
$ref: '#/components/schemas/Embargo'
|
493
|
+
download:
|
494
|
+
description: >
|
495
|
+
Download access level. This is used in the transition from Fedora as
|
496
|
+
a way to set a default download level at registration that is copied
|
497
|
+
down to all the files.
|
498
|
+
|
499
|
+
type: string
|
500
|
+
enum:
|
501
|
+
- 'world'
|
502
|
+
- 'stanford'
|
503
|
+
- 'location-based'
|
504
|
+
- 'none'
|
505
|
+
default: 'none'
|
506
|
+
readLocation:
|
507
|
+
description: >
|
508
|
+
If access is "location-based", which location should have access.
|
509
|
+
This is used in the transition from Fedora as a way to set a default
|
510
|
+
readLocation at registration that is copied down to all the files.
|
511
|
+
|
512
|
+
type: string
|
513
|
+
enum:
|
514
|
+
- 'spec'
|
515
|
+
- 'music'
|
516
|
+
- 'ars'
|
517
|
+
- 'art'
|
518
|
+
- 'hoover'
|
519
|
+
- 'm&m'
|
450
520
|
useAndReproductionStatement:
|
451
521
|
description: The human readable use and reproduction statement that applies
|
452
522
|
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).
|
453
523
|
type: string
|
454
|
-
embargo:
|
455
|
-
$ref: '#/components/schemas/Embargo'
|
456
524
|
DROStructural:
|
457
525
|
description: Structural metadata
|
458
526
|
type: object
|
527
|
+
additionalProperties: false
|
459
528
|
properties:
|
460
529
|
contains:
|
461
530
|
description: Filesets that contain the digital representations (Files)
|
@@ -478,6 +547,7 @@ components:
|
|
478
547
|
example: 'druid:bc123df4567'
|
479
548
|
Embargo:
|
480
549
|
type: object
|
550
|
+
additionalProperties: false
|
481
551
|
properties:
|
482
552
|
releaseDate:
|
483
553
|
description: Date when the Collection is released from an embargo.
|
@@ -503,35 +573,39 @@ components:
|
|
503
573
|
Event:
|
504
574
|
description: Property model for describing events in the history of the resource.
|
505
575
|
type: object
|
506
|
-
|
507
|
-
type:
|
508
|
-
description: Description of the event (creation, publication, etc.).
|
509
|
-
type: string
|
510
|
-
date:
|
511
|
-
description: Dates associated with the event.
|
512
|
-
type: array
|
513
|
-
items:
|
514
|
-
$ref: "#/components/schemas/DescriptiveValue"
|
515
|
-
contributor:
|
516
|
-
description: Contributors associated with the event.
|
517
|
-
type: array
|
518
|
-
items:
|
519
|
-
$ref: "#/components/schemas/Contributor"
|
520
|
-
location:
|
521
|
-
description: Locations associated with the event.
|
522
|
-
type: array
|
523
|
-
items:
|
524
|
-
$ref: "#/components/schemas/DescriptiveValue"
|
525
|
-
note:
|
526
|
-
description: Other information about the event.
|
527
|
-
type: array
|
528
|
-
items:
|
529
|
-
$ref: "#/components/schemas/DescriptiveValue"
|
576
|
+
additionalProperties: false
|
530
577
|
allOf:
|
531
578
|
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
579
|
+
- type: object
|
580
|
+
additionalProperties: false
|
581
|
+
properties:
|
582
|
+
type:
|
583
|
+
description: Description of the event (creation, publication, etc.).
|
584
|
+
type: string
|
585
|
+
date:
|
586
|
+
description: Dates associated with the event.
|
587
|
+
type: array
|
588
|
+
items:
|
589
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
590
|
+
contributor:
|
591
|
+
description: Contributors associated with the event.
|
592
|
+
type: array
|
593
|
+
items:
|
594
|
+
$ref: "#/components/schemas/Contributor"
|
595
|
+
location:
|
596
|
+
description: Locations associated with the event.
|
597
|
+
type: array
|
598
|
+
items:
|
599
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
600
|
+
note:
|
601
|
+
description: Other information about the event.
|
602
|
+
type: array
|
603
|
+
items:
|
604
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
532
605
|
File:
|
533
606
|
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.
|
534
607
|
type: object
|
608
|
+
additionalProperties: false
|
535
609
|
properties:
|
536
610
|
type:
|
537
611
|
description: The content type of the File.
|
@@ -572,6 +646,7 @@ components:
|
|
572
646
|
required:
|
573
647
|
- externalIdentifier
|
574
648
|
- label
|
649
|
+
- filename
|
575
650
|
- type
|
576
651
|
- version
|
577
652
|
- access
|
@@ -579,6 +654,7 @@ components:
|
|
579
654
|
- hasMessageDigests
|
580
655
|
FileAdministrative:
|
581
656
|
type: object
|
657
|
+
additionalProperties: false
|
582
658
|
properties:
|
583
659
|
sdrPreserve:
|
584
660
|
type: boolean
|
@@ -592,6 +668,7 @@ components:
|
|
592
668
|
FileSet:
|
593
669
|
description: Relevant groupings of Files. Also called a File Grouping.
|
594
670
|
type: object
|
671
|
+
additionalProperties: false
|
595
672
|
properties:
|
596
673
|
type:
|
597
674
|
description: The content type of the Fileset.
|
@@ -616,6 +693,7 @@ components:
|
|
616
693
|
FileSetStructural:
|
617
694
|
description: Structural metadata
|
618
695
|
type: object
|
696
|
+
additionalProperties: false
|
619
697
|
properties:
|
620
698
|
contains:
|
621
699
|
type: array
|
@@ -624,6 +702,7 @@ components:
|
|
624
702
|
Geographic:
|
625
703
|
description: Geographic metadata
|
626
704
|
type: object
|
705
|
+
additionalProperties: false
|
627
706
|
properties:
|
628
707
|
iso19139:
|
629
708
|
description: Geographic ISO 19139 XML metadata
|
@@ -632,9 +711,17 @@ components:
|
|
632
711
|
- iso19139
|
633
712
|
Identification:
|
634
713
|
type: object
|
714
|
+
additionalProperties: false
|
635
715
|
properties:
|
636
716
|
sourceId:
|
637
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.
|
638
725
|
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
639
726
|
catalogLinks:
|
640
727
|
type: array
|
@@ -643,6 +730,7 @@ components:
|
|
643
730
|
MessageDigest:
|
644
731
|
description: The output of the message digest algorithm.
|
645
732
|
type: object
|
733
|
+
additionalProperties: false
|
646
734
|
properties:
|
647
735
|
type:
|
648
736
|
description: The algorithm that was used
|
@@ -659,6 +747,7 @@ components:
|
|
659
747
|
Presentation:
|
660
748
|
description: Presentation data for the File.
|
661
749
|
type: object
|
750
|
+
additionalProperties: false
|
662
751
|
properties:
|
663
752
|
height:
|
664
753
|
description: Height in pixels
|
@@ -669,6 +758,7 @@ components:
|
|
669
758
|
ReleaseTag:
|
670
759
|
description: A tag that indicates the item or collection should be released.
|
671
760
|
type: object
|
761
|
+
additionalProperties: false
|
672
762
|
required:
|
673
763
|
- release
|
674
764
|
properties:
|
@@ -696,6 +786,7 @@ components:
|
|
696
786
|
RequestAdminPolicy:
|
697
787
|
description: Same as an AdminPolicy, but doesn't have an externalIdentifier as one will be created
|
698
788
|
type: object
|
789
|
+
additionalProperties: false
|
699
790
|
properties:
|
700
791
|
type:
|
701
792
|
type: string
|
@@ -711,13 +802,14 @@ components:
|
|
711
802
|
description:
|
712
803
|
$ref: '#/components/schemas/Description'
|
713
804
|
required:
|
805
|
+
- administrative
|
714
806
|
- label
|
715
807
|
- type
|
716
808
|
- version
|
717
|
-
- administrative
|
718
809
|
RequestCollection:
|
719
810
|
description: Same as a Collection, but doesn't have an externalIdentifier as one will be created
|
720
811
|
type: object
|
812
|
+
additionalProperties: false
|
721
813
|
properties:
|
722
814
|
type:
|
723
815
|
type: string
|
@@ -741,13 +833,15 @@ components:
|
|
741
833
|
identification:
|
742
834
|
$ref: '#/components/schemas/CollectionIdentification'
|
743
835
|
required:
|
836
|
+
- access
|
837
|
+
- administrative
|
744
838
|
- label
|
745
839
|
- type
|
746
840
|
- version
|
747
|
-
- access
|
748
841
|
RequestDRO:
|
749
842
|
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.
|
750
843
|
type: object
|
844
|
+
additionalProperties: false
|
751
845
|
properties:
|
752
846
|
type:
|
753
847
|
type: string
|
@@ -779,18 +873,21 @@ components:
|
|
779
873
|
description:
|
780
874
|
$ref: '#/components/schemas/Description'
|
781
875
|
identification:
|
782
|
-
$ref: '#/components/schemas/
|
876
|
+
$ref: '#/components/schemas/RequestIdentification'
|
783
877
|
structural:
|
784
878
|
$ref: '#/components/schemas/RequestDROStructural'
|
785
879
|
geographic:
|
786
880
|
$ref: '#/components/schemas/Geographic'
|
787
881
|
required:
|
882
|
+
- administrative
|
883
|
+
- identification
|
788
884
|
- label
|
789
885
|
- type
|
790
886
|
- version
|
791
887
|
RequestDROStructural:
|
792
888
|
description: Structural metadata
|
793
889
|
type: object
|
890
|
+
additionalProperties: false
|
794
891
|
properties:
|
795
892
|
contains:
|
796
893
|
type: array
|
@@ -806,6 +903,7 @@ components:
|
|
806
903
|
type: string
|
807
904
|
RequestFile:
|
808
905
|
type: object
|
906
|
+
additionalProperties: false
|
809
907
|
properties:
|
810
908
|
type:
|
811
909
|
type: string
|
@@ -845,6 +943,7 @@ components:
|
|
845
943
|
- hasMessageDigests
|
846
944
|
RequestFileSet:
|
847
945
|
type: object
|
946
|
+
additionalProperties: false
|
848
947
|
properties:
|
849
948
|
type:
|
850
949
|
type: string
|
@@ -864,15 +963,43 @@ components:
|
|
864
963
|
RequestFileSetStructural:
|
865
964
|
description: Structural metadata
|
866
965
|
type: object
|
966
|
+
additionalProperties: false
|
867
967
|
properties:
|
868
968
|
contains:
|
869
969
|
type: array
|
870
970
|
items:
|
871
971
|
$ref: '#/components/schemas/RequestFile'
|
972
|
+
RequestIdentification:
|
973
|
+
description: Same as a Identification, but requires a sourceId.
|
974
|
+
type: object
|
975
|
+
additionalProperties: false
|
976
|
+
properties:
|
977
|
+
sourceId:
|
978
|
+
type: string
|
979
|
+
description: >
|
980
|
+
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
981
|
+
historically and currently, are representations of objects that are also represented in other systems.
|
982
|
+
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
983
|
+
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
984
|
+
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
985
|
+
look for the original item if you're looking at its SDR representation.
|
986
|
+
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
987
|
+
catalogLinks:
|
988
|
+
type: array
|
989
|
+
items:
|
990
|
+
$ref: '#/components/schemas/CatalogLink'
|
991
|
+
required:
|
992
|
+
- sourceId
|
872
993
|
Sequence:
|
873
994
|
description: A sequence or ordering of resources within a Collection or Object.
|
874
995
|
type: object
|
996
|
+
additionalProperties: false
|
875
997
|
properties:
|
998
|
+
members:
|
999
|
+
description: "Identifiers for Members in their stated Order for the Sequence."
|
1000
|
+
type: array
|
1001
|
+
items:
|
1002
|
+
type: string
|
876
1003
|
viewingDirection:
|
877
1004
|
description: The direction that a sequence of canvases should be displayed to the user
|
878
1005
|
type: string
|
@@ -883,6 +1010,7 @@ components:
|
|
883
1010
|
description: Property model for indicating the vocabulary, authority, or other
|
884
1011
|
origin for a term, code, or identifier.
|
885
1012
|
type: object
|
1013
|
+
additionalProperties: false
|
886
1014
|
properties:
|
887
1015
|
code:
|
888
1016
|
description: Code representing the value source.
|