cocina-models 0.14.0 → 0.15.0

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