cocina-models 0.29.0 → 0.33.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +51 -0
  3. data/.github/pull_request_template.md +8 -1
  4. data/.rubocop.yml +14 -3
  5. data/README.md +21 -13
  6. data/cocina-models.gemspec +6 -1
  7. data/docs/index.html +20 -0
  8. data/docs/maps/DRO.json +1 -1
  9. data/exe/generator +9 -0
  10. data/lib/cocina/generator.rb +7 -0
  11. data/lib/cocina/generator/generator.rb +80 -0
  12. data/lib/cocina/generator/schema.rb +105 -0
  13. data/lib/cocina/generator/schema_array.rb +24 -0
  14. data/lib/cocina/generator/schema_base.rb +71 -0
  15. data/lib/cocina/generator/schema_ref.rb +16 -0
  16. data/lib/cocina/generator/schema_value.rb +38 -0
  17. data/lib/cocina/generator/vocab.rb +63 -0
  18. data/lib/cocina/models.rb +54 -25
  19. data/lib/cocina/models/access.rb +14 -0
  20. data/lib/cocina/models/admin_policy.rb +13 -56
  21. data/lib/cocina/models/admin_policy_administrative.rb +11 -0
  22. data/lib/cocina/models/administrative.rb +14 -0
  23. data/lib/cocina/models/applies_to.rb +9 -0
  24. data/lib/cocina/models/catalog_link.rb +4 -1
  25. data/lib/cocina/models/collection.rb +21 -31
  26. data/lib/cocina/models/collection_identification.rb +9 -0
  27. data/lib/cocina/models/contributor.rb +14 -0
  28. data/lib/cocina/models/description.rb +16 -7
  29. data/lib/cocina/models/descriptive_admin_metadata.rb +12 -0
  30. data/lib/cocina/models/descriptive_basic_value.rb +21 -0
  31. data/lib/cocina/models/descriptive_structured_value.rb +9 -0
  32. data/lib/cocina/models/descriptive_value.rb +23 -0
  33. data/lib/cocina/models/descriptive_value_required.rb +23 -0
  34. data/lib/cocina/models/dro.rb +34 -70
  35. data/lib/cocina/models/dro_access.rb +22 -0
  36. data/lib/cocina/models/dro_structural.rb +14 -0
  37. data/lib/cocina/models/embargo.rb +16 -0
  38. data/lib/cocina/models/event.rb +15 -0
  39. data/lib/cocina/models/file.rb +20 -36
  40. data/lib/cocina/models/file_administrative.rb +10 -0
  41. data/lib/cocina/models/file_set.rb +8 -15
  42. data/lib/cocina/models/file_set_structural.rb +9 -0
  43. data/lib/cocina/models/geographic.rb +10 -0
  44. data/lib/cocina/models/identification.rb +11 -0
  45. data/lib/cocina/models/message_digest.rb +17 -0
  46. data/lib/cocina/models/presentation.rb +12 -0
  47. data/lib/cocina/models/release_tag.rb +12 -7
  48. data/lib/cocina/models/request_admin_policy.rb +15 -3
  49. data/lib/cocina/models/request_collection.rb +21 -4
  50. data/lib/cocina/models/request_dro.rb +32 -11
  51. data/lib/cocina/models/request_dro_structural.rb +13 -0
  52. data/lib/cocina/models/request_file.rb +15 -6
  53. data/lib/cocina/models/request_file_set.rb +7 -9
  54. data/lib/cocina/models/request_file_set_structural.rb +9 -0
  55. data/lib/cocina/models/request_identification.rb +11 -0
  56. data/lib/cocina/models/sequence.rb +3 -5
  57. data/lib/cocina/models/source.rb +14 -0
  58. data/lib/cocina/models/validator.rb +28 -0
  59. data/lib/cocina/models/version.rb +1 -1
  60. data/lib/cocina/models/vocab.rb +45 -60
  61. data/openapi.yml +1003 -0
  62. metadata +116 -19
  63. data/.travis.yml +0 -23
  64. data/docs/README.md +0 -9
  65. data/docs/_config.yml +0 -1
  66. data/docs/meta.json +0 -9
  67. data/docs/schema.json +0 -1654
  68. data/docs/schema.md +0 -268
  69. data/lib/cocina/models/admin_policy_attributes.rb +0 -21
  70. data/lib/cocina/models/collection_attributes.rb +0 -22
  71. data/lib/cocina/models/dro_attributes.rb +0 -22
  72. data/lib/cocina/models/file_attributes.rb +0 -25
  73. data/lib/cocina/models/file_set_attributes.rb +0 -16
  74. data/lib/cocina/models/types.rb +0 -10
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocina-models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 0.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-12 00:00:00.000000000 Z
11
+ date: 2020-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: dry-struct
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,48 @@ dependencies:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '1.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: openapi3_parser
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: openapi_parser
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: thor
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: zeitwerk
43
99
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +122,20 @@ dependencies:
66
122
  - - "~>"
67
123
  - !ruby/object:Gem::Version
68
124
  version: '2.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: committee
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
69
139
  - !ruby/object:Gem::Dependency
70
140
  name: rake
71
141
  requirement: !ruby/object:Gem::Requirement
@@ -126,38 +196,38 @@ dependencies:
126
196
  name: simplecov
127
197
  requirement: !ruby/object:Gem::Requirement
128
198
  requirements:
129
- - - ">="
199
+ - - "~>"
130
200
  - !ruby/object:Gem::Version
131
- version: '0'
201
+ version: 0.17.0
132
202
  type: :development
133
203
  prerelease: false
134
204
  version_requirements: !ruby/object:Gem::Requirement
135
205
  requirements:
136
- - - ">="
206
+ - - "~>"
137
207
  - !ruby/object:Gem::Version
138
- version: '0'
208
+ version: 0.17.0
139
209
  description: SDR data models that can be validated
140
210
  email:
141
211
  - jcoyne@justincoyne.com
142
- executables: []
212
+ executables:
213
+ - generator
143
214
  extensions: []
144
215
  extra_rdoc_files: []
145
216
  files:
217
+ - ".circleci/config.yml"
146
218
  - ".github/pull_request_template.md"
147
219
  - ".gitignore"
148
220
  - ".rspec"
149
221
  - ".rubocop.yml"
150
222
  - ".rubocop_todo.yml"
151
- - ".travis.yml"
152
223
  - Gemfile
153
224
  - README.md
154
225
  - Rakefile
155
226
  - bin/console
156
227
  - bin/setup
157
228
  - cocina-models.gemspec
158
- - docs/README.md
159
- - docs/_config.yml
160
229
  - docs/cocina-base.jsonld
230
+ - docs/index.html
161
231
  - docs/maps/Agent.json
162
232
  - docs/maps/Collection.json
163
233
  - docs/maps/DRO.json
@@ -168,37 +238,64 @@ files:
168
238
  - docs/maps/ReleaseTag.json
169
239
  - docs/maps/Sequence.json
170
240
  - docs/maps/Title.json
171
- - docs/meta.json
172
241
  - docs/sampleETD/foxml-export.xml
173
242
  - docs/sampleETD/foxml.xml
174
243
  - docs/sampleETD/xn109qc9773_bibframe.ttl
175
244
  - docs/sampleETD/xn109qc9773_taco.json
176
- - docs/schema.json
177
- - docs/schema.md
245
+ - exe/generator
246
+ - lib/cocina/generator.rb
247
+ - lib/cocina/generator/generator.rb
248
+ - lib/cocina/generator/schema.rb
249
+ - lib/cocina/generator/schema_array.rb
250
+ - lib/cocina/generator/schema_base.rb
251
+ - lib/cocina/generator/schema_ref.rb
252
+ - lib/cocina/generator/schema_value.rb
253
+ - lib/cocina/generator/vocab.rb
178
254
  - lib/cocina/models.rb
255
+ - lib/cocina/models/access.rb
179
256
  - lib/cocina/models/admin_policy.rb
180
- - lib/cocina/models/admin_policy_attributes.rb
257
+ - lib/cocina/models/admin_policy_administrative.rb
258
+ - lib/cocina/models/administrative.rb
259
+ - lib/cocina/models/applies_to.rb
181
260
  - lib/cocina/models/catalog_link.rb
182
261
  - lib/cocina/models/checkable.rb
183
262
  - lib/cocina/models/collection.rb
184
- - lib/cocina/models/collection_attributes.rb
263
+ - lib/cocina/models/collection_identification.rb
264
+ - lib/cocina/models/contributor.rb
185
265
  - lib/cocina/models/description.rb
266
+ - lib/cocina/models/descriptive_admin_metadata.rb
267
+ - lib/cocina/models/descriptive_basic_value.rb
268
+ - lib/cocina/models/descriptive_structured_value.rb
269
+ - lib/cocina/models/descriptive_value.rb
270
+ - lib/cocina/models/descriptive_value_required.rb
186
271
  - lib/cocina/models/dro.rb
187
- - lib/cocina/models/dro_attributes.rb
272
+ - lib/cocina/models/dro_access.rb
273
+ - lib/cocina/models/dro_structural.rb
274
+ - lib/cocina/models/embargo.rb
275
+ - lib/cocina/models/event.rb
188
276
  - lib/cocina/models/file.rb
189
- - lib/cocina/models/file_attributes.rb
277
+ - lib/cocina/models/file_administrative.rb
190
278
  - lib/cocina/models/file_set.rb
191
- - lib/cocina/models/file_set_attributes.rb
279
+ - lib/cocina/models/file_set_structural.rb
280
+ - lib/cocina/models/geographic.rb
281
+ - lib/cocina/models/identification.rb
282
+ - lib/cocina/models/message_digest.rb
283
+ - lib/cocina/models/presentation.rb
192
284
  - lib/cocina/models/release_tag.rb
193
285
  - lib/cocina/models/request_admin_policy.rb
194
286
  - lib/cocina/models/request_collection.rb
195
287
  - lib/cocina/models/request_dro.rb
288
+ - lib/cocina/models/request_dro_structural.rb
196
289
  - lib/cocina/models/request_file.rb
197
290
  - lib/cocina/models/request_file_set.rb
291
+ - lib/cocina/models/request_file_set_structural.rb
292
+ - lib/cocina/models/request_identification.rb
198
293
  - lib/cocina/models/sequence.rb
199
- - lib/cocina/models/types.rb
294
+ - lib/cocina/models/source.rb
295
+ - lib/cocina/models/validator.rb
200
296
  - lib/cocina/models/version.rb
201
297
  - lib/cocina/models/vocab.rb
298
+ - openapi.yml
202
299
  homepage: https://github.com/sul-dlss/cocina-models
203
300
  licenses: []
204
301
  metadata: {}
@@ -1,23 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.3
7
- - 2.6.4
8
- before_install: gem install bundler -v 2.1.4
9
-
10
- before_script:
11
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
12
- - chmod +x ./cc-test-reporter
13
- - ./cc-test-reporter before-build
14
-
15
- after_script:
16
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
17
-
18
- notifications:
19
- email: false
20
-
21
- env:
22
- global:
23
- - CC_TEST_REPORTER_ID=882e943342bed5285a6078be9a41b7738ae7ebd17458c08414581cbece99b8e6
@@ -1,9 +0,0 @@
1
-
2
- # COCINA Models
3
-
4
- Documentation for Stanford Digital Repository data models (named "COCINA" to distinguish them from models used in the past)
5
-
6
- Included:
7
- * [COCINA schema](schema)
8
- * [COCINA metadata application profiles (MAPs)](./maps)
9
- * [Sample ETD data mapped into the MAPs](./sampleETD)
@@ -1 +0,0 @@
1
- theme: jekyll-theme-minimal
@@ -1,9 +0,0 @@
1
- {
2
- "description": "Hello world prmd API",
3
- "id": "hello-prmd",
4
- "links": [{
5
- "href": "https://api.hello.com",
6
- "rel": "self"
7
- }],
8
- "title": "Hello Prmd"
9
- }
@@ -1,1654 +0,0 @@
1
- {
2
- "$schema": "http://interagent.github.io/interagent-hyper-schema",
3
- "type": [
4
- "object"
5
- ],
6
- "definitions": {
7
- "Agent": {
8
- "$schema": "http://json-schema.org/draft-06/schema#",
9
- "title": "Agent",
10
- "description": "An Agent - Person, Group, Organization, or other Acting body.",
11
- "type": [
12
- "object"
13
- ],
14
- "required": [
15
- "name"
16
- ],
17
- "properties": {
18
- "name": {
19
- "description": "Primary label or name for an Agent.",
20
- "type": [
21
- "string"
22
- ]
23
- },
24
- "sunetID": {
25
- "description": "Stanford University NetID for the Agent.",
26
- "type": [
27
- "string"
28
- ]
29
- }
30
- }
31
- },
32
- "Collection": {
33
- "$schema": "http://json-schema.org/draft-06/schema#",
34
- "title": "Digital Repository Collection",
35
- "description": "A group of Digital Repository Objects that indicate some type of conceptual grouping within the domain that is worth reusing across the system.",
36
- "type": [
37
- "object"
38
- ],
39
- "required": [
40
- "@context",
41
- "@type",
42
- "externalIdentifier",
43
- "label",
44
- "internalIdentifier",
45
- "version",
46
- "administrative",
47
- "access",
48
- "description",
49
- "identification",
50
- "structural"
51
- ],
52
- "properties": {
53
- "@context": {
54
- "description": "URI for the JSON-LD context definitions.",
55
- "type": [
56
- "string"
57
- ]
58
- },
59
- "@type": {
60
- "description": "The content type of the Collection. Selected from an established set of values.",
61
- "type": [
62
- "string"
63
- ],
64
- "enum": [
65
- "http://cocina.sul.stanford.edu/models/collection.jsonld",
66
- "http://cocina.sul.stanford.edu/models/curated-collection.jsonld",
67
- "http://cocina.sul.stanford.edu/models/user-collection.jsonld",
68
- "http://cocina.sul.stanford.edu/models/exhibit.jsonld",
69
- "http://cocina.sul.stanford.edu/models/series.jsonld"
70
- ]
71
- },
72
- "citation": {
73
- "description": "Citation for the resource, including identifier, label, version, and a persistent URL to the object with SDR at the very least.",
74
- "type": [
75
- "string"
76
- ]
77
- },
78
- "dedupeIdentifier": {
79
- "description": "Identifier retrieved from identification.sourceId that stands for analog or source identifier that this resource is a digital representation of.",
80
- "type": [
81
- "string"
82
- ]
83
- },
84
- "depositor": {
85
- "description": "The Agent (User, Group, Application, Department, other) that deposited the Collection into SDR.",
86
- "$ref": "#/definitions/Agent"
87
- },
88
- "description": {
89
- "description": "Descriptive metadata for the DRO.",
90
- "$ref": "#/definitions/Description"
91
- },
92
- "externalIdentifier": {
93
- "description": "Identifier for the resource within the SDR architecture but outside of the repository. DRUID or UUID depending on resource type. Constant across resource versions. What clients will use calling the repository. Same as `identification.identifier`",
94
- "type": [
95
- "string"
96
- ]
97
- },
98
- "label": {
99
- "description": "Primary processing label (can be same as title) for a Collection.",
100
- "type": [
101
- "string"
102
- ]
103
- },
104
- "internalIdentifier": {
105
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
106
- "type": [
107
- "string"
108
- ]
109
- },
110
- "version": {
111
- "description": "Version for the Collection within SDR.",
112
- "type": [
113
- "integer"
114
- ]
115
- },
116
- "precedingVersion": {
117
- "description": "Preceding version for the Collection within SDR.",
118
- "type": [
119
- "string"
120
- ]
121
- },
122
- "followingVersion": {
123
- "description": "Following version for the Collection within SDR.",
124
- "type": [
125
- "string"
126
- ]
127
- },
128
- "access": {
129
- "description": "Access Metadata for the Collection.",
130
- "type": [
131
- "object"
132
- ],
133
- "required": [
134
- "access",
135
- "download"
136
- ],
137
- "properties": {
138
- "access": {
139
- "description": "Access level for the Collection.",
140
- "type": [
141
- "string"
142
- ],
143
- "enum": [
144
- "world",
145
- "stanford",
146
- "location-based",
147
- "citation-only",
148
- "dark"
149
- ]
150
- },
151
- "copyright": {
152
- "description": "The human readable copyright statement that applies to the Collection.",
153
- "type": [
154
- "string"
155
- ]
156
- },
157
- "download": {
158
- "description": "Download level for the Collection metadata.",
159
- "type": [
160
- "string"
161
- ],
162
- "enum": [
163
- "world",
164
- "stanford",
165
- "location-based",
166
- "citation-only",
167
- "dark"
168
- ]
169
- },
170
- "embargoReleaseDate": {
171
- "description": "Date when the Collection is released from an embargo, if an embargo exists.",
172
- "type": [
173
- "string"
174
- ],
175
- "format": "date-time"
176
- },
177
- "license": {
178
- "description": "The license governing reuse of the Collection. Should be an IRI for known licenses (i.e. CC, RightsStatement.org URI, etc.).",
179
- "type": [
180
- "string"
181
- ]
182
- },
183
- "useAndReproductionStatement": {
184
- "description": "The human readable reuse and reproduction statement that applies to the Collection.",
185
- "type": [
186
- "string"
187
- ]
188
- },
189
- "termsOfUse": {
190
- "description": "License or terms of use governing reuse of the Collection. Should be a text statement.",
191
- "type": [
192
- "string"
193
- ]
194
- }
195
- }
196
- },
197
- "administrative": {
198
- "type": [
199
- "object"
200
- ],
201
- "description": "Administrative metadata for the SDR resource.",
202
- "required": [
203
- "created",
204
- "isDescribedBy",
205
- "sdrPreserve"
206
- ],
207
- "properties": {
208
- "created": {
209
- "description": "When the resource in SDR was created.",
210
- "type": [
211
- "string"
212
- ],
213
- "format": "date-time"
214
- },
215
- "deleted": {
216
- "description": "If the resource has been deleted (but not purged).",
217
- "type": [
218
- "boolean"
219
- ]
220
- },
221
- "gravestoneMessage": {
222
- "description": "Message describing why the object was deleted.",
223
- "type": [
224
- "string"
225
- ]
226
- },
227
- "isDescribedBy": {
228
- "description": "PURL/XML file that is a traditional representation of the metadata for the Collection.",
229
- "type": [
230
- "string"
231
- ]
232
- },
233
- "lastUpdated": {
234
- "description": "When the resource in SDR was last updated.",
235
- "type": [
236
- "string"
237
- ],
238
- "format": "date-time"
239
- },
240
- "partOfProject": {
241
- "description": "Administrative or Internal project this resource is a part of.",
242
- "type": [
243
- "string"
244
- ]
245
- },
246
- "releaseTags": {
247
- "description": "Tags for release",
248
- "type": [
249
- "array"
250
- ],
251
- "items": {
252
- "$ref": "#/definitions/ReleaseTag"
253
- }
254
- },
255
- "sdrPreserve": {
256
- "description": "If this resource should be sent to Preservation.",
257
- "type": [
258
- "boolean"
259
- ]
260
- },
261
- "remediatedBy": {
262
- "description": "The Agent (User, Group, Application, Department, other) that remediated a Collection in SDR.",
263
- "type": [
264
- "array"
265
- ],
266
- "items": {
267
- "$ref": "#/definitions/Agent"
268
- }
269
- }
270
- }
271
- },
272
- "identification": {
273
- "description": "Identifying information for the Collection.",
274
- "type": [
275
- "object"
276
- ],
277
- "required": [
278
- "identifier"
279
- ],
280
- "properties": {
281
- "catalogLinks": {
282
- "description": "Links to catalog records for the resource that the Collection represents in whole or part.",
283
- "type": [
284
- "array"
285
- ],
286
- "items": {
287
- "type": [
288
- "object"
289
- ],
290
- "required": [
291
- "catalog",
292
- "catalogRecordId"
293
- ],
294
- "properties": {
295
- "catalog": {
296
- "description": "Catalog that is the source of the linked record.",
297
- "type": [
298
- "string"
299
- ]
300
- },
301
- "catalogRecordId": {
302
- "description": "Record identifier that is unique within the context of the linked record's catalog.",
303
- "type": [
304
- "string"
305
- ]
306
- },
307
- "recordSchema": {
308
- "description": "Metadata schema of the linked record.",
309
- "type": [
310
- "string"
311
- ]
312
- },
313
- "deriveMetadata": {
314
- "description": "If the Collection descriptive metadata should be automatically updated when the linked record changes.",
315
- "type": [
316
- "boolean"
317
- ]
318
- },
319
- "deliverMetadata": {
320
- "description": "If the linked record should be automatically updated when the Collection descriptive metadata changes.",
321
- "type": [
322
- "boolean"
323
- ]
324
- },
325
- "recordScope": {
326
- "description": "Whether the linked record describes a resource that is broader than, equivalent to, or narrower than the resource the Collection represents.",
327
- "type": [
328
- "string"
329
- ],
330
- "enum": [
331
- "broader",
332
- "equivalent",
333
- "narrower"
334
- ]
335
- }
336
- }
337
- }
338
- },
339
- "DOI": {
340
- "description": "Digital Object Identifier (DOI) for the Collection within this repository.",
341
- "type": [
342
- "string"
343
- ]
344
- },
345
- "identifier": {
346
- "description": "Identifier for the Collection within the Stanford Digital Repository system",
347
- "type": [
348
- "string"
349
- ]
350
- },
351
- "sameAs": {
352
- "description": "Another object, either external or internal to the system (if duplication occurs) that is the same digital resource as this Collection.",
353
- "type": [
354
- "string"
355
- ]
356
- },
357
- "sourceId": {
358
- "description": "A source resource or object (perhaps but not necessarily analog or physical) that the Collection is a digital representation of.",
359
- "type": [
360
- "string"
361
- ]
362
- },
363
- "sdrUUID": {
364
- "type": [
365
- "string"
366
- ],
367
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
368
- }
369
- }
370
- },
371
- "structural": {
372
- "description": "Structural metadata for the Collection.",
373
- "type": [
374
- "object"
375
- ],
376
- "required": [
377
- "hasAgreement"
378
- ],
379
- "properties": {
380
- "hasAgreement": {
381
- "description": "Agreement that covers the deposit of the Collection into SDR.",
382
- "type": [
383
- "string"
384
- ]
385
- },
386
- "hasMember": {
387
- "description": "Component digital repository objects or collections that are a part of this collection.",
388
- "type": [
389
- "array"
390
- ],
391
- "items": {
392
- "type": [
393
- "string"
394
- ]
395
- }
396
- },
397
- "isTargetOf": {
398
- "description": "An Annotation instance that applies to the Collection.",
399
- "type": [
400
- "string"
401
- ]
402
- },
403
- "hasMemberOrders": {
404
- "description": "Provided sequences or orderings of members of the Collection, including some metadata about each sequence (i.e. sequence label, sequence type, if the sequence is primary, etc.).",
405
- "type": [
406
- "array"
407
- ],
408
- "items": {
409
- "$ref": "#/definitions/Sequence"
410
- }
411
- }
412
- }
413
- }
414
- }
415
- },
416
- "DRO": {
417
- "$schema": "http://json-schema.org/draft-06/schema#",
418
- "title": "Digital Repository Object",
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": [
421
- "object"
422
- ],
423
- "required": [
424
- "@context",
425
- "@type",
426
- "externalIdentifier",
427
- "label",
428
- "internalIdentifier",
429
- "version",
430
- "administrative",
431
- "access",
432
- "description",
433
- "identification",
434
- "structural"
435
- ],
436
- "properties": {
437
- "@context": {
438
- "description": "URI for the JSON-LD context definitions.",
439
- "type": [
440
- "string"
441
- ]
442
- },
443
- "@type": {
444
- "description": "The content type of the DRO. Selected from an established set of values.",
445
- "type": [
446
- "string"
447
- ],
448
- "enum": [
449
- "http://cocina.sul.stanford.edu/models/object.jsonld",
450
- "http://cocina.sul.stanford.edu/models/3d.jsonld",
451
- "http://cocina.sul.stanford.edu/models/agreement.jsonld",
452
- "http://cocina.sul.stanford.edu/models/book.jsonld",
453
- "http://cocina.sul.stanford.edu/models/document.jsonld",
454
- "http://cocina.sul.stanford.edu/models/geo.jsonld",
455
- "http://cocina.sul.stanford.edu/models/image.jsonld",
456
- "http://cocina.sul.stanford.edu/models/page.jsonld",
457
- "http://cocina.sul.stanford.edu/models/photograph.jsonld",
458
- "http://cocina.sul.stanford.edu/models/manuscript.jsonld",
459
- "http://cocina.sul.stanford.edu/models/map.jsonld",
460
- "http://cocina.sul.stanford.edu/models/media.jsonld",
461
- "http://cocina.sul.stanford.edu/models/track.jsonld",
462
- "http://cocina.sul.stanford.edu/models/webarchive-binary.jsonld",
463
- "http://cocina.sul.stanford.edu/models/webarchive-seed.jsonld"
464
- ]
465
- },
466
- "citation": {
467
- "description": "Citation for the resource, including identifier, label, version, and a persistent URL to the object with SDR at the very least.",
468
- "type": [
469
- "string"
470
- ]
471
- },
472
- "dedupeIdentifier": {
473
- "description": "Identifier retrieved from identification.sourceId that stands for analog or source identifier that this resource is a digital representation of.",
474
- "type": [
475
- "string"
476
- ]
477
- },
478
- "depositor": {
479
- "description": "The Agent (User, Group, Application, Department, other) that deposited the DRO into SDR.",
480
- "$ref": "#/definitions/Agent"
481
- },
482
- "externalIdentifier": {
483
- "description": "Identifier for the resource within the SDR architecture but outside of the repository. DRUID or UUID depending on resource type. Constant across resource versions. What clients will use calling the repository. Same as `identification.identifier`",
484
- "type": [
485
- "string"
486
- ]
487
- },
488
- "label": {
489
- "description": "Primary processing label (can be same as title) for a DRO.",
490
- "type": [
491
- "string"
492
- ]
493
- },
494
- "internalIdentifier": {
495
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
496
- "type": [
497
- "string"
498
- ]
499
- },
500
- "version": {
501
- "description": "Version for the DRO within SDR.",
502
- "type": [
503
- "integer"
504
- ]
505
- },
506
- "precedingVersion": {
507
- "description": "Preceding version for the Object within SDR.",
508
- "type": [
509
- "string"
510
- ]
511
- },
512
- "followingVersion": {
513
- "description": "Following version for the Object within SDR.",
514
- "type": [
515
- "string"
516
- ]
517
- },
518
- "access": {
519
- "description": "Access Metadata for the DRO.",
520
- "type": [
521
- "object"
522
- ],
523
- "required": [
524
- "access",
525
- "download"
526
- ],
527
- "properties": {
528
- "access": {
529
- "description": "Access level for the DRO.",
530
- "type": [
531
- "string"
532
- ],
533
- "enum": [
534
- "world",
535
- "stanford",
536
- "location-based",
537
- "citation-only",
538
- "dark"
539
- ]
540
- },
541
- "copyright": {
542
- "description": "The human readable copyright statement that applies to the DRO.",
543
- "type": [
544
- "string"
545
- ]
546
- },
547
- "download": {
548
- "description": "Download level for the DRO metadata.",
549
- "type": [
550
- "string"
551
- ],
552
- "enum": [
553
- "world",
554
- "stanford",
555
- "location-based",
556
- "citation-only",
557
- "dark"
558
- ]
559
- },
560
- "embargo": {
561
- "description": "Embargo metadata",
562
- "type": [
563
- "object"
564
- ],
565
- "required": [
566
- "releaseDate",
567
- "access"
568
- ],
569
- "properties": {
570
- "releaseDate": {
571
- "description": "Date when the DRO is released from an embargo.",
572
- "type": [
573
- "string"
574
- ],
575
- "format": "date-time"
576
- },
577
- "access": {
578
- "description": "Access level for the DRO when released from embargo.",
579
- "type": [
580
- "string"
581
- ],
582
- "enum": [
583
- "world",
584
- "stanford",
585
- "location-based",
586
- "citation-only",
587
- "dark"
588
- ]
589
- },
590
- "useAndReproductionStatement": {
591
- "description": "The human readable reuse and reproduction statement that applies to the DRO when released from embargo.",
592
- "type": [
593
- "string"
594
- ]
595
- }
596
- }
597
- },
598
- "license": {
599
- "description": "The license governing reuse of the DRO. Should be an IRI for known licenses (i.e. CC, RightsStatement.org URI, etc.).",
600
- "type": [
601
- "string"
602
- ]
603
- },
604
- "useAndReproductionStatement": {
605
- "description": "The human readable reuse and reproduction statement that applies to the DRO.",
606
- "type": [
607
- "string"
608
- ]
609
- },
610
- "termsOfUse": {
611
- "description": "License or terms of use governing reuse of the DRO. Should be a text statement.",
612
- "type": [
613
- "string"
614
- ]
615
- },
616
- "visibility": {
617
- "description": "Percentage of the DRO that is visibility during an embargo period",
618
- "type": [
619
- "integer"
620
- ]
621
- }
622
- }
623
- },
624
- "administrative": {
625
- "type": [
626
- "object"
627
- ],
628
- "description": "Administrative metadata for the SDR resource.",
629
- "required": [
630
- "created",
631
- "isDescribedBy",
632
- "sdrPreserve"
633
- ],
634
- "properties": {
635
- "created": {
636
- "description": "When the resource in SDR was created.",
637
- "type": [
638
- "string"
639
- ],
640
- "format": "date-time"
641
- },
642
- "deleted": {
643
- "description": "If the resource has been deleted (but not purged).",
644
- "type": [
645
- "boolean"
646
- ]
647
- },
648
- "gravestoneMessage": {
649
- "description": "Message describing why the object was deleted.",
650
- "type": [
651
- "string"
652
- ]
653
- },
654
- "isDescribedBy": {
655
- "description": "Pointer to the PURL/XML file that is a traditional representation of the metadata for the DRO.",
656
- "type": [
657
- "string"
658
- ]
659
- },
660
- "lastUpdated": {
661
- "description": "When the resource in SDR was last updated.",
662
- "type": [
663
- "string"
664
- ],
665
- "format": "date-time"
666
- },
667
- "partOfProject": {
668
- "description": "Administrative or Internal project this resource is a part of.",
669
- "type": [
670
- "string"
671
- ]
672
- },
673
- "releaseTags": {
674
- "description": "Tags for release",
675
- "type": [
676
- "array"
677
- ],
678
- "items": {
679
- "$ref": "#/definitions/ReleaseTag"
680
- }
681
- },
682
- "sdrPreserve": {
683
- "description": "If this resource should be sent to Preservation.",
684
- "type": [
685
- "boolean"
686
- ]
687
- },
688
- "remediatedBy": {
689
- "description": "The Agent (User, Group, Application, Department, other) that remediated a DRO in SDR.",
690
- "type": [
691
- "array"
692
- ],
693
- "items": {
694
- "$ref": "#/definitions/Agent"
695
- }
696
- }
697
- }
698
- },
699
- "description": {
700
- "description": "Descriptive metadata for the DRO.",
701
- "$ref": "#/definitions/Description"
702
- },
703
- "geographic": {
704
- "description": "Geographic metadata for the DRO.",
705
- "type": [
706
- "object"
707
- ],
708
- "required": [
709
- "iso19139"
710
- ],
711
- "properties": {
712
- "iso19139": {
713
- "description": "Geographic ISO 19139 XML metadata",
714
- "type": [
715
- "string"
716
- ]
717
- }
718
- }
719
- },
720
- "identification": {
721
- "description": "Identifying information for the DRO.",
722
- "type": [
723
- "object"
724
- ],
725
- "required": [
726
- "identifier"
727
- ],
728
- "properties": {
729
- "catalogLinks": {
730
- "description": "Links to catalog records for the resource that the DRO represents in whole or part.",
731
- "type": [
732
- "array"
733
- ],
734
- "items": {
735
- "type": [
736
- "object"
737
- ],
738
- "required": [
739
- "catalog",
740
- "catalogRecordId"
741
- ],
742
- "properties": {
743
- "catalog": {
744
- "description": "Catalog that is the source of the linked record.",
745
- "type": [
746
- "string"
747
- ]
748
- },
749
- "catalogRecordId": {
750
- "description": "Record identifier that is unique within the context of the linked record's catalog.",
751
- "type": [
752
- "string"
753
- ]
754
- },
755
- "recordSchema": {
756
- "description": "Metadata schema of the linked record.",
757
- "type": [
758
- "string"
759
- ]
760
- },
761
- "deriveMetadata": {
762
- "description": "If the DRO descriptive metadata should be automatically updated when the linked record changes.",
763
- "type": [
764
- "boolean"
765
- ]
766
- },
767
- "deliverMetadata": {
768
- "description": "If the linked record should be automatically updated when the DRO descriptive metadata changes.",
769
- "type": [
770
- "boolean"
771
- ]
772
- },
773
- "recordScope": {
774
- "description": "Whether the linked record describes a resource that is broader than, equivalent to, or narrower than the resource the DRO represents.",
775
- "type": [
776
- "string"
777
- ],
778
- "enum": [
779
- "broader",
780
- "equivalent",
781
- "narrower"
782
- ]
783
- }
784
- }
785
- }
786
- },
787
- "doi": {
788
- "description": "Digital Object Identifier (DOI) for the DRO within this repository.",
789
- "type": [
790
- "string"
791
- ]
792
- },
793
- "identifier": {
794
- "description": "Identifier for the Digital Repository Object within the Stanford Digital Repository system",
795
- "type": [
796
- "string"
797
- ]
798
- },
799
- "sameAs": {
800
- "description": "Another object, either external or internal to the system (if duplication occurs) that is the same digital resource as this DRO.",
801
- "type": [
802
- "string"
803
- ]
804
- },
805
- "sourceId": {
806
- "description": "A source resource or object (perhaps but not necessarily analog or physical) that the DRO is a digital representation of.",
807
- "type": [
808
- "string"
809
- ]
810
- },
811
- "sdrUUID": {
812
- "type": [
813
- "string"
814
- ],
815
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
816
- }
817
- }
818
- },
819
- "permissions": {
820
- "description": "Permissions Metadata for the DRO.",
821
- "type": [
822
- "object"
823
- ],
824
- "properties": {
825
- "approvalRequired": {
826
- "description": "Indicates if approval is required to deposit or manage the resource in SDR.",
827
- "type": [
828
- "boolean"
829
- ]
830
- },
831
- "approvers": {
832
- "description": "Agents who are required to approve deposit or management of this resource in SDR.",
833
- "type": [
834
- "array"
835
- ],
836
- "items": {
837
- "$ref": "#/definitions/Agent"
838
- }
839
- }
840
- }
841
- },
842
- "structural": {
843
- "description": "Structural metadata for the DRO.",
844
- "type": [
845
- "object"
846
- ],
847
- "required": [
848
- "hasAgreement"
849
- ],
850
- "properties": {
851
- "contains": {
852
- "description": "Filesets that contain the digital representations (Files) of the DRO.",
853
- "type": [
854
- "array"
855
- ],
856
- "items": {
857
- "$ref": "#/definitions/Fileset"
858
- }
859
- },
860
- "hasAgreement": {
861
- "description": "Agreement that covers the deposit of the DRO into SDR.",
862
- "type": [
863
- "string"
864
- ]
865
- },
866
- "hasMember": {
867
- "description": "Component or 'children' digital repository objects that are a part or portion of this 'parent' or aggregate DRO.",
868
- "type": [
869
- "array"
870
- ],
871
- "items": {
872
- "type": [
873
- "string"
874
- ]
875
- }
876
- },
877
- "isMemberOf": {
878
- "description": "Collection that this DRO is a member of",
879
- "type": [
880
- "string"
881
- ]
882
- },
883
- "isTargetOf": {
884
- "description": "An Annotation instance that applies to the DRO.",
885
- "type": [
886
- "string"
887
- ]
888
- },
889
- "hasMemberOrders": {
890
- "description": "Provided sequences or orderings of members of the Object, including some metadata about each sequence (i.e. sequence label, sequence type, if the sequence is primary, etc.).",
891
- "type": [
892
- "array"
893
- ],
894
- "items": {
895
- "$ref": "#/definitions/Sequence"
896
- }
897
- }
898
- }
899
- }
900
- }
901
- },
902
- "Description": {
903
- "$schema": "http://json-schema.org/draft-06/schema#",
904
- "title": "Description",
905
- "description": "The description of a work",
906
- "type": [
907
- "object"
908
- ],
909
- "required": [
910
- "title"
911
- ],
912
- "properties": {
913
- "title": {
914
- "description": "The title of the item.",
915
- "type": [
916
- "array"
917
- ],
918
- "items": {
919
- "$ref": "#/definitions/Title"
920
- }
921
- }
922
- }
923
- },
924
- "File": {
925
- "$schema": "http://json-schema.org/draft-06/schema#",
926
- "title": "File",
927
- "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.",
928
- "type": [
929
- "object"
930
- ],
931
- "required": [
932
- "@context",
933
- "@type",
934
- "externalIdentifier",
935
- "internalIdentifier",
936
- "label",
937
- "version",
938
- "administrative",
939
- "access",
940
- "identification",
941
- "structural"
942
- ],
943
- "properties": {
944
- "@context": {
945
- "description": "URI for the JSON-LD context definitions.",
946
- "type": [
947
- "string"
948
- ]
949
- },
950
- "@type": {
951
- "description": "The content type of the File.",
952
- "type": [
953
- "string"
954
- ],
955
- "enum": [
956
- "http://cocina.sul.stanford.edu/models/file.jsonld"
957
- ]
958
- },
959
- "depositor": {
960
- "description": "The Agent (User, Group, Application, Department, other) that deposited the File into SDR.",
961
- "$ref": "#/definitions/Agent"
962
- },
963
- "externalIdentifier": {
964
- "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. Same as `identification.identifier`",
965
- "type": [
966
- "string"
967
- ]
968
- },
969
- "filename": {
970
- "description": "Filename for a file. Can be same as label.",
971
- "type": [
972
- "string"
973
- ]
974
- },
975
- "format": {
976
- "description": "Format of the File.",
977
- "type": [
978
- "string"
979
- ]
980
- },
981
- "hasMessageDigests": {
982
- "description": "The output of the message digest algorithm.",
983
- "type": [
984
- "array"
985
- ],
986
- "items": {
987
- "required": [
988
- "type",
989
- "digest"
990
- ],
991
- "properties": {
992
- "type": {
993
- "description": "The algorithm that was used",
994
- "type": [
995
- "string"
996
- ],
997
- "enum": [
998
- "md5",
999
- "sha1"
1000
- ]
1001
- },
1002
- "digest": {
1003
- "description": "The digest value",
1004
- "type": [
1005
- "string"
1006
- ]
1007
- }
1008
- }
1009
- }
1010
- },
1011
- "hasMimeType": {
1012
- "description": "MIME Type of the File.",
1013
- "type": [
1014
- "string"
1015
- ]
1016
- },
1017
- "label": {
1018
- "description": "Primary processing label (can be same as title) for a File.",
1019
- "type": [
1020
- "string"
1021
- ]
1022
- },
1023
- "presentation": {
1024
- "description": "Presentation data for the File.",
1025
- "type": [
1026
- "object"
1027
- ],
1028
- "properties": {
1029
- "height": {
1030
- "description": "Height in pixels",
1031
- "type": [
1032
- "integer"
1033
- ]
1034
- },
1035
- "width": {
1036
- "description": "Width in pixels",
1037
- "type": [
1038
- "integer"
1039
- ]
1040
- }
1041
- }
1042
- },
1043
- "size": {
1044
- "description": "Size of the File (binary) in bytes.",
1045
- "type": [
1046
- "integer"
1047
- ]
1048
- },
1049
- "internalIdentifier": {
1050
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
1051
- "type": [
1052
- "string"
1053
- ]
1054
- },
1055
- "use": {
1056
- "description": "Use for the File.",
1057
- "type": [
1058
- "string"
1059
- ]
1060
- },
1061
- "version": {
1062
- "description": "Version for the File within SDR.",
1063
- "type": [
1064
- "integer"
1065
- ]
1066
- },
1067
- "precedingVersion": {
1068
- "description": "Preceding version for the File within SDR.",
1069
- "type": [
1070
- "string"
1071
- ]
1072
- },
1073
- "followingVersion": {
1074
- "description": "Following version for the File within SDR.",
1075
- "type": [
1076
- "string"
1077
- ]
1078
- },
1079
- "access": {
1080
- "description": "Access Metadata for the File.",
1081
- "type": [
1082
- "object"
1083
- ],
1084
- "required": [
1085
- "access",
1086
- "download"
1087
- ],
1088
- "properties": {
1089
- "access": {
1090
- "description": "Access level for the File. If \"dark\" this won't go into public xml contentMetadata.",
1091
- "type": [
1092
- "string"
1093
- ],
1094
- "enum": [
1095
- "world",
1096
- "stanford",
1097
- "location-based",
1098
- "citation-only",
1099
- "dark"
1100
- ]
1101
- },
1102
- "download": {
1103
- "description": "Download level for the File binary.",
1104
- "type": [
1105
- "string"
1106
- ],
1107
- "enum": [
1108
- "world",
1109
- "stanford",
1110
- "location-based",
1111
- "citation-only",
1112
- "dark"
1113
- ]
1114
- }
1115
- }
1116
- },
1117
- "administrative": {
1118
- "type": [
1119
- "object"
1120
- ],
1121
- "description": "Administrative metadata for the SDR resource.",
1122
- "required": [
1123
- "created",
1124
- "sdrPreserve"
1125
- ],
1126
- "properties": {
1127
- "created": {
1128
- "description": "When the resource in SDR was created.",
1129
- "type": [
1130
- "string"
1131
- ],
1132
- "format": "date-time"
1133
- },
1134
- "deleted": {
1135
- "description": "If the resource has been deleted (but not purged).",
1136
- "type": [
1137
- "boolean"
1138
- ]
1139
- },
1140
- "gravestoneMessage": {
1141
- "description": "Message describing why the resource was deleted.",
1142
- "type": [
1143
- "string"
1144
- ]
1145
- },
1146
- "lastUpdated": {
1147
- "description": "When the resource in SDR was last updated.",
1148
- "type": [
1149
- "string"
1150
- ],
1151
- "format": "date-time"
1152
- },
1153
- "partOfProject": {
1154
- "description": "Administrative or Internal project this resource is a part of.",
1155
- "type": [
1156
- "string"
1157
- ]
1158
- },
1159
- "sdrPreserve": {
1160
- "description": "If this resource should be sent to Preservation.",
1161
- "type": [
1162
- "boolean"
1163
- ]
1164
- },
1165
- "shelve": {
1166
- "description": "If this resource should be sent to Stacks.",
1167
- "type": [
1168
- "boolean"
1169
- ]
1170
- },
1171
- "remediatedBy": {
1172
- "description": "The Agent (User, Group, Application, Department, other) that remediated this File in SDR.",
1173
- "type": [
1174
- "array"
1175
- ],
1176
- "items": {
1177
- "$ref": "#/definitions/Agent"
1178
- }
1179
- }
1180
- }
1181
- },
1182
- "identification": {
1183
- "description": "Identifying information for the File.",
1184
- "type": [
1185
- "object"
1186
- ],
1187
- "required": [
1188
- "identifier",
1189
- "sdrUUID"
1190
- ],
1191
- "properties": {
1192
- "filename": {
1193
- "description": "Filename for the File from originating systems.",
1194
- "type": [
1195
- "string"
1196
- ]
1197
- },
1198
- "identifier": {
1199
- "description": "Identifier for the File within the Stanford Digital Repository system",
1200
- "type": [
1201
- "string"
1202
- ]
1203
- },
1204
- "sdrUUID": {
1205
- "type": [
1206
- "string"
1207
- ],
1208
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
1209
- }
1210
- }
1211
- },
1212
- "structural": {
1213
- "description": "Structural metadata for the File.",
1214
- "type": [
1215
- "object"
1216
- ],
1217
- "required": [
1218
- "isContainedBy"
1219
- ],
1220
- "properties": {
1221
- "isContainedBy": {
1222
- "description": "Fileset that contains this File.",
1223
- "type": [
1224
- "string"
1225
- ]
1226
- },
1227
- "isTargetOf": {
1228
- "description": "An Annotation instance that applies to this File.",
1229
- "type": [
1230
- "string"
1231
- ]
1232
- }
1233
- }
1234
- }
1235
- }
1236
- },
1237
- "Fileset": {
1238
- "$schema": "http://json-schema.org/draft-06/schema#",
1239
- "title": "Fileset",
1240
- "description": "Relevant groupings of Files. Also called a File Grouping.",
1241
- "type": [
1242
- "object"
1243
- ],
1244
- "required": [
1245
- "@context",
1246
- "@type",
1247
- "externalIdentifier",
1248
- "internalIdentifier",
1249
- "label",
1250
- "version",
1251
- "administrative",
1252
- "access",
1253
- "identification",
1254
- "structural"
1255
- ],
1256
- "properties": {
1257
- "@context": {
1258
- "description": "URI for the JSON-LD context definitions.",
1259
- "type": [
1260
- "string"
1261
- ]
1262
- },
1263
- "@type": {
1264
- "description": "The content type of the Fileset.",
1265
- "type": [
1266
- "string"
1267
- ],
1268
- "enum": [
1269
- "http://cocina.sul.stanford.edu/models/fileset.jsonld"
1270
- ]
1271
- },
1272
- "depositor": {
1273
- "description": "The Agent (User, Group, Application, Department, other) that deposited the Fileset into SDR.",
1274
- "$ref": "#/definitions/Agent"
1275
- },
1276
- "label": {
1277
- "description": "Primary processing label (can be same as title) for a Fileset.",
1278
- "type": [
1279
- "string"
1280
- ]
1281
- },
1282
- "externalIdentifier": {
1283
- "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. Same as `identification.identifier`",
1284
- "type": [
1285
- "string"
1286
- ]
1287
- },
1288
- "internalIdentifier": {
1289
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
1290
- "type": [
1291
- "string"
1292
- ]
1293
- },
1294
- "version": {
1295
- "description": "Version for the Fileset within SDR.",
1296
- "type": [
1297
- "integer"
1298
- ]
1299
- },
1300
- "precedingVersion": {
1301
- "description": "Preceding version for the Fileset within SDR.",
1302
- "type": [
1303
- "string"
1304
- ]
1305
- },
1306
- "followingVersion": {
1307
- "description": "Following version for the Fileset within SDR.",
1308
- "type": [
1309
- "string"
1310
- ]
1311
- },
1312
- "access": {
1313
- "description": "Access Metadata for the Fileset.",
1314
- "type": [
1315
- "object"
1316
- ],
1317
- "required": [
1318
- "access",
1319
- "download"
1320
- ],
1321
- "properties": {
1322
- "access": {
1323
- "description": "Access level for the Fileset.",
1324
- "type": [
1325
- "string"
1326
- ],
1327
- "enum": [
1328
- "world",
1329
- "stanford",
1330
- "location-based",
1331
- "citation-only",
1332
- "dark"
1333
- ]
1334
- },
1335
- "download": {
1336
- "description": "Download level for the Fileset metadata.",
1337
- "type": [
1338
- "string"
1339
- ],
1340
- "enum": [
1341
- "world",
1342
- "stanford",
1343
- "location-based",
1344
- "citation-only",
1345
- "dark"
1346
- ]
1347
- }
1348
- }
1349
- },
1350
- "administrative": {
1351
- "type": [
1352
- "object"
1353
- ],
1354
- "description": "Administrative metadata for the SDR resource.",
1355
- "required": [
1356
- "created",
1357
- "sdrPreserve"
1358
- ],
1359
- "properties": {
1360
- "created": {
1361
- "description": "When the resource in SDR was created.",
1362
- "type": [
1363
- "string"
1364
- ],
1365
- "format": "date-time"
1366
- },
1367
- "deleted": {
1368
- "description": "If the resource has been deleted (but not purged).",
1369
- "type": [
1370
- "boolean"
1371
- ]
1372
- },
1373
- "gravestoneMessage": {
1374
- "description": "Message describing why the resource was deleted.",
1375
- "type": [
1376
- "string"
1377
- ]
1378
- },
1379
- "lastUpdated": {
1380
- "description": "When the resource in SDR was last updated.",
1381
- "type": [
1382
- "string"
1383
- ],
1384
- "format": "date-time"
1385
- },
1386
- "partOfProject": {
1387
- "description": "Administrative or Internal project this resource is a part of.",
1388
- "type": [
1389
- "string"
1390
- ]
1391
- },
1392
- "sdrPreserve": {
1393
- "description": "If this resource should be sent to Preservation.",
1394
- "type": [
1395
- "boolean"
1396
- ]
1397
- },
1398
- "remediatedBy": {
1399
- "description": "The Agent (User, Group, Application, Department, other) that remediated a Fileset in SDR.",
1400
- "type": [
1401
- "array"
1402
- ],
1403
- "items": {
1404
- "$ref": "#/definitions/Agent"
1405
- }
1406
- }
1407
- }
1408
- },
1409
- "identification": {
1410
- "description": "Identifying information for the Fileset.",
1411
- "type": [
1412
- "object"
1413
- ],
1414
- "required": [
1415
- "identifier"
1416
- ],
1417
- "properties": {
1418
- "identifier": {
1419
- "description": "Identifier for the Fileset within the Stanford Digital Repository system",
1420
- "type": [
1421
- "string"
1422
- ]
1423
- },
1424
- "sdrUUID": {
1425
- "type": [
1426
- "string"
1427
- ],
1428
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
1429
- }
1430
- }
1431
- },
1432
- "structural": {
1433
- "description": "Structural metadata for the Fileset.",
1434
- "type": [
1435
- "object"
1436
- ],
1437
- "required": [
1438
- "isContainedBy"
1439
- ],
1440
- "properties": {
1441
- "contains": {
1442
- "description": "Files that are members of the fileset.",
1443
- "type": [
1444
- "array"
1445
- ],
1446
- "items": {
1447
- "$ref": "#/definitions/File"
1448
- }
1449
- },
1450
- "isContainedBy": {
1451
- "description": "Parent DRO that is represented by the files in this Fileset.",
1452
- "type": [
1453
- "string"
1454
- ]
1455
- },
1456
- "isTargetOf": {
1457
- "description": "An Annotation instance that applies to this Fileset.",
1458
- "type": [
1459
- "string"
1460
- ]
1461
- }
1462
- }
1463
- }
1464
- }
1465
- },
1466
- "ReleaseTag": {
1467
- "$schema": "http://json-schema.org/draft-06/schema#",
1468
- "title": "Release Tag",
1469
- "description": "A tag that indicates the item or collection should be released.",
1470
- "type": [
1471
- "object"
1472
- ],
1473
- "required": [
1474
- "to",
1475
- "what",
1476
- "date",
1477
- "who",
1478
- "release"
1479
- ],
1480
- "properties": {
1481
- "to": {
1482
- "description": "What platform is it released to",
1483
- "type": [
1484
- "string"
1485
- ],
1486
- "enum": [
1487
- "Searchworks",
1488
- "Earthworks"
1489
- ]
1490
- },
1491
- "what": {
1492
- "description": "What is being released. This item or the whole collection.",
1493
- "type": [
1494
- "string"
1495
- ],
1496
- "enum": [
1497
- "self",
1498
- "collection"
1499
- ]
1500
- },
1501
- "date": {
1502
- "description": "When did this action happen",
1503
- "type": [
1504
- "string"
1505
- ],
1506
- "format": "date-time"
1507
- },
1508
- "who": {
1509
- "description": "Who did this release",
1510
- "type": [
1511
- "string"
1512
- ]
1513
- },
1514
- "release": {
1515
- "description": "Should it be released or withdrawn. Release is coded as true and withdraw as false",
1516
- "type": [
1517
- "boolean"
1518
- ]
1519
- }
1520
- }
1521
- },
1522
- "Sequence": {
1523
- "$schema": "http://json-schema.org/draft-06/schema#",
1524
- "title": "Resource Sequence",
1525
- "description": "A sequence or ordering of resources within a Collection or Object.",
1526
- "type": [
1527
- "object"
1528
- ],
1529
- "required": [
1530
- "@type",
1531
- "label",
1532
- "startMember",
1533
- "members"
1534
- ],
1535
- "properties": {
1536
- "@context": {
1537
- "description": "URI for the JSON-LD context definitions.",
1538
- "type": [
1539
- "string"
1540
- ]
1541
- },
1542
- "@type": {
1543
- "description": "The type of Sequence.",
1544
- "type": [
1545
- "string"
1546
- ],
1547
- "enum": [
1548
- "http://cocina.sul.stanford.edu/models/sequence.jsonld",
1549
- "http://cocina.sul.stanford.edu/models/primary-sequence.jsonld"
1550
- ]
1551
- },
1552
- "label": {
1553
- "description": "Label for the sequence or ordering.",
1554
- "type": [
1555
- "string"
1556
- ]
1557
- },
1558
- "startMember": {
1559
- "description": "Identifier for the first member of the sequence.",
1560
- "type": [
1561
- "string"
1562
- ]
1563
- },
1564
- "members": {
1565
- "description": "Identifiers for Members in their stated Order for the Sequence.",
1566
- "type": [
1567
- "array"
1568
- ],
1569
- "items": {
1570
- "type": [
1571
- "string"
1572
- ]
1573
- }
1574
- },
1575
- "viewingDirection": {
1576
- "description": "The direction that a sequence of canvases should be displayed to the user",
1577
- "type": [
1578
- "string"
1579
- ],
1580
- "enum": [
1581
- "left-to-right",
1582
- "right-to-left",
1583
- "top-to-bottom",
1584
- "bottom-to-top"
1585
- ]
1586
- }
1587
- }
1588
- },
1589
- "Title": {
1590
- "$schema": "http://json-schema.org/draft-06/schema#",
1591
- "title": "Title",
1592
- "description": "A title of a work",
1593
- "type": [
1594
- "object"
1595
- ],
1596
- "required": [
1597
- "titleFull",
1598
- "primary"
1599
- ],
1600
- "properties": {
1601
- "primary": {
1602
- "description": "Is this the primary title for the object",
1603
- "type": [
1604
- "boolean"
1605
- ]
1606
- },
1607
- "titleFull": {
1608
- "description": "The full title for the object",
1609
- "type": [
1610
- "string"
1611
- ]
1612
- }
1613
- }
1614
- }
1615
- },
1616
- "properties": {
1617
- "Agent": {
1618
- "$ref": "#/definitions/Agent"
1619
- },
1620
- "Collection": {
1621
- "$ref": "#/definitions/Collection"
1622
- },
1623
- "DRO": {
1624
- "$ref": "#/definitions/DRO"
1625
- },
1626
- "Description": {
1627
- "$ref": "#/definitions/Description"
1628
- },
1629
- "File": {
1630
- "$ref": "#/definitions/File"
1631
- },
1632
- "Fileset": {
1633
- "$ref": "#/definitions/Fileset"
1634
- },
1635
- "ReleaseTag": {
1636
- "$ref": "#/definitions/ReleaseTag"
1637
- },
1638
- "Sequence": {
1639
- "$ref": "#/definitions/Sequence"
1640
- },
1641
- "Title": {
1642
- "$ref": "#/definitions/Title"
1643
- }
1644
- },
1645
- "description": "Hello world prmd API",
1646
- "id": "hello-prmd",
1647
- "links": [
1648
- {
1649
- "href": "https://api.hello.com",
1650
- "rel": "self"
1651
- }
1652
- ],
1653
- "title": "Hello Prmd"
1654
- }