cocina-models 0.33.0 → 0.37.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +115 -2
- data/cocina-models.gemspec +3 -2
- data/docs/maps/DRO.json +4 -0
- data/lib/cocina/generator/generator.rb +3 -0
- data/lib/cocina/generator/schema_value.rb +2 -2
- data/lib/cocina/models.rb +1 -2
- data/lib/cocina/models/admin_policy_administrative.rb +1 -1
- data/lib/cocina/models/administrative.rb +1 -1
- data/lib/cocina/models/contributor.rb +3 -1
- data/lib/cocina/models/description.rb +4 -2
- data/lib/cocina/models/descriptive_access_metadata.rb +13 -0
- data/lib/cocina/models/descriptive_admin_metadata.rb +3 -1
- data/lib/cocina/models/descriptive_basic_value.rb +10 -3
- data/lib/cocina/models/descriptive_parallel_value.rb +9 -0
- data/lib/cocina/models/descriptive_structured_value.rb +1 -1
- data/lib/cocina/models/descriptive_value.rb +10 -4
- data/lib/cocina/models/descriptive_value_required.rb +10 -4
- data/lib/cocina/models/dro.rb +1 -1
- data/lib/cocina/models/dro_access.rb +2 -0
- data/lib/cocina/models/event.rb +1 -1
- data/lib/cocina/models/file.rb +1 -1
- data/lib/cocina/models/file_access.rb +16 -0
- data/lib/cocina/models/identification.rb +2 -0
- data/lib/cocina/models/language.rb +30 -0
- data/lib/cocina/models/related_resource.rb +21 -0
- data/lib/cocina/models/request_collection.rb +1 -1
- data/lib/cocina/models/request_dro.rb +1 -1
- data/lib/cocina/models/request_file.rb +1 -1
- data/lib/cocina/models/request_identification.rb +2 -0
- data/lib/cocina/models/source.rb +1 -0
- data/lib/cocina/models/standard.rb +16 -0
- data/lib/cocina/models/version.rb +1 -1
- data/openapi.yml +342 -95
- metadata +18 -12
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class FileAccess < Struct
|
6
|
+
# Access level
|
7
|
+
attribute :access, Types::Strict::String.default('dark').enum('world', 'stanford', 'location-based', 'citation-only', 'dark').meta(omittable: true)
|
8
|
+
# Available for controlled digital lending.
|
9
|
+
attribute :controlledDigitalLending, Types::Strict::Bool.meta(omittable: true)
|
10
|
+
# Download access level for a file
|
11
|
+
attribute :download, Types::Strict::String.default('none').enum('world', 'stanford', 'location-based', 'none').meta(omittable: true)
|
12
|
+
# If access is "location-based", which location should have access.
|
13
|
+
attribute :readLocation, Types::Strict::String.enum('spec', 'music', 'ars', 'art', 'hoover', 'm&m').meta(omittable: true)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class Identification < Struct
|
6
|
+
# Unique identifier in some other system. This is because a large proportion of what is deposited in SDR, historically and currently, are representations of objects that are also represented in other systems. For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to look for the original item if you're looking at its SDR representation.
|
7
|
+
|
6
8
|
# example: sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026
|
7
9
|
attribute :sourceId, Types::Strict::String.meta(omittable: true)
|
8
10
|
attribute :catalogLinks, Types::Strict::Array.of(CatalogLink).meta(omittable: true)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class Language < Struct
|
6
|
+
attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
|
+
attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
|
+
# String value of the descriptive element.
|
9
|
+
attribute :value, Types::Strict::String.meta(omittable: true)
|
10
|
+
# Type of value provided by the descriptive element.
|
11
|
+
attribute :type, Types::Strict::String.meta(omittable: true)
|
12
|
+
# Status of the descriptive element value relative to other instances of the element.
|
13
|
+
attribute :status, Types::Strict::String.meta(omittable: true)
|
14
|
+
# Code value of the descriptive element.
|
15
|
+
attribute :code, Types::Strict::String.meta(omittable: true)
|
16
|
+
# URI value of the descriptive element.
|
17
|
+
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
|
+
attribute :standard, Standard.optional.meta(omittable: true)
|
19
|
+
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
+
attribute :source, Source.optional.meta(omittable: true)
|
21
|
+
# The preferred display label to use for the descriptive element in access systems.
|
22
|
+
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
23
|
+
# A term providing information about the circumstances of the statement (e.g., approximate dates).
|
24
|
+
attribute :qualifier, Types::Strict::String.meta(omittable: true)
|
25
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
26
|
+
attribute :appliesTo, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
|
27
|
+
attribute :script, DescriptiveValue.optional.meta(omittable: true)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class RelatedResource < Struct
|
6
|
+
# The relationship of the related resource to the described resource.
|
7
|
+
attribute :type, Types::Strict::String.meta(omittable: true)
|
8
|
+
attribute :title, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
9
|
+
attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
|
10
|
+
attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
|
11
|
+
attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
|
+
attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
|
13
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
14
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
15
|
+
attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
16
|
+
# Stanford persistent URL associated with the related resource.
|
17
|
+
attribute :purl, Types::Strict::String.meta(omittable: true)
|
18
|
+
attribute :access, DescriptiveAccessMetadata.optional.meta(omittable: true)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -16,7 +16,7 @@ module Cocina
|
|
16
16
|
attribute :label, Types::Strict::String
|
17
17
|
attribute :version, Types::Strict::Integer
|
18
18
|
attribute(:access, Access.default { Access.new })
|
19
|
-
attribute
|
19
|
+
attribute(:administrative, Administrative.default { Administrative.new })
|
20
20
|
attribute :description, Description.optional.meta(omittable: true)
|
21
21
|
attribute :identification, CollectionIdentification.optional.meta(omittable: true)
|
22
22
|
|
@@ -26,7 +26,7 @@ module Cocina
|
|
26
26
|
attribute :label, Types::Strict::String
|
27
27
|
attribute :version, Types::Strict::Integer
|
28
28
|
attribute :access, DROAccess.optional.meta(omittable: true)
|
29
|
-
attribute
|
29
|
+
attribute(:administrative, Administrative.default { Administrative.new })
|
30
30
|
attribute :description, Description.optional.meta(omittable: true)
|
31
31
|
attribute(:identification, RequestIdentification.default { RequestIdentification.new })
|
32
32
|
attribute :structural, RequestDROStructural.optional.meta(omittable: true)
|
@@ -16,7 +16,7 @@ module Cocina
|
|
16
16
|
attribute :externalIdentifier, Types::Strict::String.meta(omittable: true)
|
17
17
|
attribute :use, Types::Strict::String.meta(omittable: true)
|
18
18
|
attribute :hasMessageDigests, Types::Strict::Array.of(MessageDigest).default([].freeze)
|
19
|
-
attribute(:access,
|
19
|
+
attribute(:access, FileAccess.default { FileAccess.new })
|
20
20
|
attribute(:administrative, FileAdministrative.default { FileAdministrative.new })
|
21
21
|
attribute :presentation, Presentation.optional.meta(omittable: true)
|
22
22
|
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class RequestIdentification < Struct
|
6
|
+
# Unique identifier in some other system. This is because a large proportion of what is deposited in SDR, historically and currently, are representations of objects that are also represented in other systems. For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to look for the original item if you're looking at its SDR representation.
|
7
|
+
|
6
8
|
# example: sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026
|
7
9
|
attribute :sourceId, Types::Strict::String
|
8
10
|
attribute :catalogLinks, Types::Strict::Array.of(CatalogLink).meta(omittable: true)
|
data/lib/cocina/models/source.rb
CHANGED
@@ -9,6 +9,7 @@ module Cocina
|
|
9
9
|
attribute :uri, Types::Strict::String.meta(omittable: true)
|
10
10
|
# String describing the value source.
|
11
11
|
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class Standard < Struct
|
6
|
+
# Code representing the standard or encoding.
|
7
|
+
attribute :code, Types::Strict::String.meta(omittable: true)
|
8
|
+
# URI for the standard or encoding.
|
9
|
+
attribute :uri, Types::Strict::String.meta(omittable: true)
|
10
|
+
# String describing the standard or encoding.
|
11
|
+
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
|
+
attribute :source, Source.optional.meta(omittable: true)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/openapi.yml
CHANGED
@@ -94,7 +94,7 @@ paths:
|
|
94
94
|
components:
|
95
95
|
schemas:
|
96
96
|
Access:
|
97
|
-
description: Access metadata
|
97
|
+
description: Access metadata for collections
|
98
98
|
type: object
|
99
99
|
additionalProperties: false
|
100
100
|
properties:
|
@@ -142,6 +142,8 @@ components:
|
|
142
142
|
description: Administrative or Internal project this resource is a part of
|
143
143
|
example: Google Books
|
144
144
|
type: string
|
145
|
+
required:
|
146
|
+
- hasAdminPolicy
|
145
147
|
AdminPolicy:
|
146
148
|
type: object
|
147
149
|
additionalProperties: false
|
@@ -162,11 +164,11 @@ components:
|
|
162
164
|
description:
|
163
165
|
$ref: '#/components/schemas/Description'
|
164
166
|
required:
|
167
|
+
- administrative
|
165
168
|
- externalIdentifier
|
166
169
|
- label
|
167
170
|
- type
|
168
171
|
- version
|
169
|
-
- administrative
|
170
172
|
AdminPolicyAdministrative:
|
171
173
|
type: object
|
172
174
|
additionalProperties: false
|
@@ -178,6 +180,8 @@ components:
|
|
178
180
|
type: string
|
179
181
|
hasAdminPolicy:
|
180
182
|
type: string
|
183
|
+
required:
|
184
|
+
- hasAdminPolicy
|
181
185
|
AppliesTo:
|
182
186
|
description: Property model for indicating the parts, aspects, or versions of the resource to which a
|
183
187
|
descriptive element is applicable.
|
@@ -250,7 +254,7 @@ components:
|
|
250
254
|
$ref: '#/components/schemas/CatalogLink'
|
251
255
|
Contributor:
|
252
256
|
description: Property model for describing agents contributing in some way to
|
253
|
-
the creation and history of the resource
|
257
|
+
the creation and history of the resource.
|
254
258
|
type: object
|
255
259
|
additionalProperties: false
|
256
260
|
properties:
|
@@ -263,7 +267,8 @@ components:
|
|
263
267
|
description: Entity type of the contributor (person, organization, etc.).
|
264
268
|
type: string
|
265
269
|
status:
|
266
|
-
description: Status of the contributor relative to other parallel contributors
|
270
|
+
description: Status of the contributor relative to other parallel contributors
|
271
|
+
(e.g. the primary author among a group of contributors).
|
267
272
|
type: string
|
268
273
|
role:
|
269
274
|
description: Relationships of the contributor to the resource or to an event
|
@@ -271,90 +276,16 @@ components:
|
|
271
276
|
type: array
|
272
277
|
items:
|
273
278
|
$ref: "#/components/schemas/DescriptiveValue"
|
274
|
-
|
275
|
-
|
276
|
-
type: object
|
277
|
-
additionalProperties: false
|
278
|
-
properties:
|
279
|
-
contributor:
|
280
|
-
type: array
|
281
|
-
items:
|
282
|
-
$ref: "#/components/schemas/Contributor"
|
283
|
-
event:
|
284
|
-
type: array
|
285
|
-
items:
|
286
|
-
$ref: "#/components/schemas/Event"
|
287
|
-
language:
|
279
|
+
identifier:
|
280
|
+
description: Identifiers and URIs associated with the contributor entity.
|
288
281
|
type: array
|
289
282
|
items:
|
290
283
|
$ref: "#/components/schemas/DescriptiveValue"
|
291
284
|
note:
|
285
|
+
description: Other information associated with the contributor.
|
292
286
|
type: array
|
293
287
|
items:
|
294
288
|
$ref: "#/components/schemas/DescriptiveValue"
|
295
|
-
DescriptiveBasicValue:
|
296
|
-
description: Value model for descriptive elements without recursive properties.
|
297
|
-
type: object
|
298
|
-
additionalProperties: false
|
299
|
-
properties:
|
300
|
-
value:
|
301
|
-
description: String value of the descriptive element.
|
302
|
-
type: string
|
303
|
-
type:
|
304
|
-
description: Type of value provided by the descriptive element.
|
305
|
-
type: string
|
306
|
-
status:
|
307
|
-
description: Status of the descriptive element relative to other instances
|
308
|
-
of the element.
|
309
|
-
type: string
|
310
|
-
code:
|
311
|
-
description: Code value of the descriptive element.
|
312
|
-
type: string
|
313
|
-
uri:
|
314
|
-
description: URI value of the descriptive element.
|
315
|
-
type: string
|
316
|
-
format: uri
|
317
|
-
standard:
|
318
|
-
description: Descriptive or content standard to which the value conforms.
|
319
|
-
type: array
|
320
|
-
items:
|
321
|
-
type: string
|
322
|
-
encoding:
|
323
|
-
description: Encoding schema, standard, or syntax to which the value conforms.
|
324
|
-
type: array
|
325
|
-
items:
|
326
|
-
type: string
|
327
|
-
source:
|
328
|
-
$ref: "#/components/schemas/Source"
|
329
|
-
DescriptiveStructuredValue:
|
330
|
-
description: Value model for descriptive elements structured as typed values.
|
331
|
-
type: object
|
332
|
-
additionalProperties: false
|
333
|
-
properties:
|
334
|
-
structuredValue:
|
335
|
-
type: array
|
336
|
-
items:
|
337
|
-
$ref: "#/components/schemas/DescriptiveBasicValue"
|
338
|
-
DescriptiveValue:
|
339
|
-
description: Default value model for descriptive elements.
|
340
|
-
type: object
|
341
|
-
additionalProperties: false
|
342
|
-
allOf:
|
343
|
-
- $ref: "#/components/schemas/DescriptiveBasicValue"
|
344
|
-
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
345
|
-
- $ref: "#/components/schemas/AppliesTo"
|
346
|
-
DescriptiveValueRequired:
|
347
|
-
type: object
|
348
|
-
additionalProperties: false
|
349
|
-
allOf:
|
350
|
-
- $ref: "#/components/schemas/DescriptiveValue"
|
351
|
-
- anyOf:
|
352
|
-
- type: object
|
353
|
-
required:
|
354
|
-
- value
|
355
|
-
- type: object
|
356
|
-
required:
|
357
|
-
- structuredValue
|
358
289
|
Description:
|
359
290
|
type: object
|
360
291
|
additionalProperties: false
|
@@ -383,17 +314,23 @@ components:
|
|
383
314
|
items:
|
384
315
|
$ref: "#/components/schemas/DescriptiveValue"
|
385
316
|
language:
|
386
|
-
description: Languages, scripts, and notations used in all or
|
317
|
+
description: Languages, scripts, symbolic systems, and notations used in all or
|
318
|
+
part of a resource.
|
387
319
|
type: array
|
388
320
|
items:
|
389
|
-
$ref: "#/components/schemas/
|
321
|
+
$ref: "#/components/schemas/Language"
|
390
322
|
note:
|
391
323
|
description: Additional information relevant to a resource.
|
392
324
|
type: array
|
393
325
|
items:
|
394
326
|
$ref: "#/components/schemas/DescriptiveValue"
|
395
327
|
identifier:
|
396
|
-
description:
|
328
|
+
description: Identifiers and URIs associated with the resource.
|
329
|
+
type: array
|
330
|
+
items:
|
331
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
332
|
+
subject:
|
333
|
+
description: Terms associated with the intellectual content of the resource.
|
397
334
|
type: array
|
398
335
|
items:
|
399
336
|
$ref: "#/components/schemas/DescriptiveValue"
|
@@ -401,11 +338,13 @@ components:
|
|
401
338
|
description: Stanford persistent URL associated with the resource.
|
402
339
|
type: string
|
403
340
|
format: uri
|
404
|
-
|
405
|
-
|
341
|
+
access:
|
342
|
+
$ref: "#/components/schemas/DescriptiveAccessMetadata"
|
343
|
+
relatedResource:
|
344
|
+
description: Other resources associated with the described resource.
|
406
345
|
type: array
|
407
346
|
items:
|
408
|
-
$ref: "#/components/schemas/
|
347
|
+
$ref: "#/components/schemas/RelatedResource"
|
409
348
|
marcEncodedData:
|
410
349
|
description: Data about the resource represented in MARC fixed fields and codes.
|
411
350
|
type: array
|
@@ -415,6 +354,154 @@ components:
|
|
415
354
|
$ref: "#/components/schemas/DescriptiveAdminMetadata"
|
416
355
|
required:
|
417
356
|
- title
|
357
|
+
DescriptiveAccessMetadata:
|
358
|
+
description: Information about how to access digital and physical versions of the object.
|
359
|
+
type: object
|
360
|
+
additionalProperties: false
|
361
|
+
properties:
|
362
|
+
url:
|
363
|
+
description: URLs where the resource may be accessed in full or part.
|
364
|
+
type: array
|
365
|
+
items:
|
366
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
367
|
+
physicalLocation:
|
368
|
+
description: Location of a physical version of the resource.
|
369
|
+
type: array
|
370
|
+
items:
|
371
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
372
|
+
accessContact:
|
373
|
+
description: The library, organization, or person responsible for access to the resource.
|
374
|
+
type: array
|
375
|
+
items:
|
376
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
377
|
+
digitalRepository:
|
378
|
+
description: The digital repositories that hold the resource.
|
379
|
+
type: array
|
380
|
+
items:
|
381
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
382
|
+
note:
|
383
|
+
description: Other information related to accessing the resource.
|
384
|
+
type: array
|
385
|
+
items:
|
386
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
387
|
+
DescriptiveAdminMetadata:
|
388
|
+
description: Information about this resource description.
|
389
|
+
type: object
|
390
|
+
additionalProperties: false
|
391
|
+
properties:
|
392
|
+
contributor:
|
393
|
+
description: Contributors to this resource description.
|
394
|
+
type: array
|
395
|
+
items:
|
396
|
+
$ref: "#/components/schemas/Contributor"
|
397
|
+
event:
|
398
|
+
description: Events in the history of this resource description.
|
399
|
+
type: array
|
400
|
+
items:
|
401
|
+
$ref: "#/components/schemas/Event"
|
402
|
+
language:
|
403
|
+
description: Languages, scripts, symbolic systems, and notations used
|
404
|
+
in this resource description.
|
405
|
+
type: array
|
406
|
+
items:
|
407
|
+
$ref: "#/components/schemas/Language"
|
408
|
+
note:
|
409
|
+
description: Other information related to this resource description.
|
410
|
+
type: array
|
411
|
+
items:
|
412
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
413
|
+
standard:
|
414
|
+
# description: Descriptive or content standard to which this resource description conforms.
|
415
|
+
$ref: "#/components/schemas/Standard"
|
416
|
+
identifier:
|
417
|
+
description: Identifiers associated with this resource description.
|
418
|
+
type: array
|
419
|
+
items:
|
420
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
421
|
+
DescriptiveBasicValue:
|
422
|
+
description: Basic value model for descriptive elements.
|
423
|
+
type: object
|
424
|
+
# additionalProperties breaks the validator, unclear as to why.
|
425
|
+
# additionalProperties: false
|
426
|
+
allOf:
|
427
|
+
- $ref: "#/components/schemas/DescriptiveStructuredValue"
|
428
|
+
- $ref: "#/components/schemas/DescriptiveParallelValue"
|
429
|
+
- type: object
|
430
|
+
additionalProperties: false
|
431
|
+
properties:
|
432
|
+
value:
|
433
|
+
description: String value of the descriptive element.
|
434
|
+
type: string
|
435
|
+
type:
|
436
|
+
description: Type of value provided by the descriptive element.
|
437
|
+
type: string
|
438
|
+
status:
|
439
|
+
description: Status of the descriptive element value relative to other instances
|
440
|
+
of the element.
|
441
|
+
type: string
|
442
|
+
code:
|
443
|
+
description: Code value of the descriptive element.
|
444
|
+
type: string
|
445
|
+
uri:
|
446
|
+
description: URI value of the descriptive element.
|
447
|
+
type: string
|
448
|
+
format: uri
|
449
|
+
standard:
|
450
|
+
# description: Descriptive or content standard to which the value conforms.
|
451
|
+
$ref: "#/components/schemas/Standard"
|
452
|
+
encoding:
|
453
|
+
# description: Encoding schema, standard, or syntax to which the value conforms.
|
454
|
+
$ref: "#/components/schemas/Standard"
|
455
|
+
source:
|
456
|
+
$ref: "#/components/schemas/Source"
|
457
|
+
displayLabel:
|
458
|
+
description: The preferred display label to use for the descriptive element in access systems.
|
459
|
+
type: string
|
460
|
+
qualifier:
|
461
|
+
description: A term providing information about the circumstances of the statement (e.g., approximate dates).
|
462
|
+
type: string
|
463
|
+
note:
|
464
|
+
description: Other information related to the descriptive element.
|
465
|
+
type: array
|
466
|
+
items:
|
467
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
468
|
+
DescriptiveParallelValue:
|
469
|
+
description: Value model for multiple representations of the same information (e.g. in different languages).
|
470
|
+
type: object
|
471
|
+
additionalProperties: false
|
472
|
+
properties:
|
473
|
+
parallelValue:
|
474
|
+
type: array
|
475
|
+
items:
|
476
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
477
|
+
DescriptiveStructuredValue:
|
478
|
+
description: Value model for descriptive elements structured as typed, ordered values.
|
479
|
+
type: object
|
480
|
+
additionalProperties: false
|
481
|
+
properties:
|
482
|
+
structuredValue:
|
483
|
+
type: array
|
484
|
+
items:
|
485
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
486
|
+
DescriptiveValue:
|
487
|
+
description: Default value model for descriptive elements.
|
488
|
+
type: object
|
489
|
+
additionalProperties: false
|
490
|
+
allOf:
|
491
|
+
- $ref: "#/components/schemas/DescriptiveBasicValue"
|
492
|
+
- $ref: "#/components/schemas/AppliesTo"
|
493
|
+
DescriptiveValueRequired:
|
494
|
+
type: object
|
495
|
+
additionalProperties: false
|
496
|
+
allOf:
|
497
|
+
- $ref: "#/components/schemas/DescriptiveValue"
|
498
|
+
- anyOf:
|
499
|
+
- type: object
|
500
|
+
required:
|
501
|
+
- value
|
502
|
+
- type: object
|
503
|
+
required:
|
504
|
+
- structuredValue
|
418
505
|
DRO:
|
419
506
|
description: Domain-defined abstraction of a 'work'. Digital Repository Objects' abstraction is describable for our domain’s purposes, i.e. for management needs within our system.
|
420
507
|
type: object
|
@@ -461,11 +548,12 @@ components:
|
|
461
548
|
geographic:
|
462
549
|
$ref: '#/components/schemas/Geographic'
|
463
550
|
required:
|
551
|
+
- access
|
552
|
+
- administrative
|
464
553
|
- externalIdentifier
|
465
554
|
- label
|
466
555
|
- type
|
467
556
|
- version
|
468
|
-
- access
|
469
557
|
DROAccess:
|
470
558
|
type: object
|
471
559
|
additionalProperties: false
|
@@ -479,6 +567,10 @@ components:
|
|
479
567
|
- 'citation-only'
|
480
568
|
- 'dark'
|
481
569
|
default: 'dark'
|
570
|
+
controlledDigitalLending:
|
571
|
+
description: Available for controlled digital lending.
|
572
|
+
type: boolean
|
573
|
+
default: false
|
482
574
|
copyright:
|
483
575
|
description: The human readable copyright statement that applies
|
484
576
|
example: Copyright World Trade Organization
|
@@ -633,7 +725,7 @@ components:
|
|
633
725
|
items:
|
634
726
|
$ref: '#/components/schemas/MessageDigest'
|
635
727
|
access:
|
636
|
-
$ref: '#/components/schemas/
|
728
|
+
$ref: '#/components/schemas/FileAccess'
|
637
729
|
administrative:
|
638
730
|
$ref: '#/components/schemas/FileAdministrative'
|
639
731
|
presentation:
|
@@ -647,6 +739,44 @@ components:
|
|
647
739
|
- access
|
648
740
|
- administrative
|
649
741
|
- hasMessageDigests
|
742
|
+
FileAccess:
|
743
|
+
description: Access metadata for files
|
744
|
+
type: object
|
745
|
+
additionalProperties: false
|
746
|
+
properties:
|
747
|
+
access:
|
748
|
+
description: Access level
|
749
|
+
type: string
|
750
|
+
enum:
|
751
|
+
- 'world'
|
752
|
+
- 'stanford'
|
753
|
+
- 'location-based'
|
754
|
+
- 'citation-only'
|
755
|
+
- 'dark'
|
756
|
+
default: 'dark'
|
757
|
+
controlledDigitalLending:
|
758
|
+
description: Available for controlled digital lending.
|
759
|
+
type: boolean
|
760
|
+
default: false
|
761
|
+
download:
|
762
|
+
description: Download access level for a file
|
763
|
+
type: string
|
764
|
+
enum:
|
765
|
+
- 'world'
|
766
|
+
- 'stanford'
|
767
|
+
- 'location-based'
|
768
|
+
- 'none'
|
769
|
+
default: 'none'
|
770
|
+
readLocation:
|
771
|
+
description: If access is "location-based", which location should have access.
|
772
|
+
type: string
|
773
|
+
enum:
|
774
|
+
- 'spec'
|
775
|
+
- 'music'
|
776
|
+
- 'ars'
|
777
|
+
- 'art'
|
778
|
+
- 'hoover'
|
779
|
+
- 'm&m'
|
650
780
|
FileAdministrative:
|
651
781
|
type: object
|
652
782
|
additionalProperties: false
|
@@ -710,11 +840,34 @@ components:
|
|
710
840
|
properties:
|
711
841
|
sourceId:
|
712
842
|
type: string
|
843
|
+
description: >
|
844
|
+
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
845
|
+
historically and currently, are representations of objects that are also represented in other systems.
|
846
|
+
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
847
|
+
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
848
|
+
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
849
|
+
look for the original item if you're looking at its SDR representation.
|
713
850
|
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
714
851
|
catalogLinks:
|
715
852
|
type: array
|
716
853
|
items:
|
717
854
|
$ref: '#/components/schemas/CatalogLink'
|
855
|
+
Language:
|
856
|
+
description: Languages, scripts, symbolic systems, and notations used in all
|
857
|
+
or part of a resource.
|
858
|
+
type: object
|
859
|
+
additionalProperties: false
|
860
|
+
allOf:
|
861
|
+
- $ref: '#/components/schemas/DescriptiveValue'
|
862
|
+
- type: object
|
863
|
+
# additionalProperties breaks the validator, presumably because it can't
|
864
|
+
# conform to other schemas (allOf) and not have additionalProperties
|
865
|
+
# additionalProperties: false
|
866
|
+
properties:
|
867
|
+
script:
|
868
|
+
$ref: '#/components/schemas/DescriptiveValue'
|
869
|
+
# description: An alphabet or other notation used to represent a
|
870
|
+
# language or other symbolic system associated with the resource.
|
718
871
|
MessageDigest:
|
719
872
|
description: The output of the message digest algorithm.
|
720
873
|
type: object
|
@@ -743,6 +896,63 @@ components:
|
|
743
896
|
width:
|
744
897
|
description: Width in pixels
|
745
898
|
type: integer
|
899
|
+
RelatedResource:
|
900
|
+
description: Other resource associated with the described resource.
|
901
|
+
type: object
|
902
|
+
additionalProperties: false
|
903
|
+
properties:
|
904
|
+
type:
|
905
|
+
description: The relationship of the related resource to the described resource.
|
906
|
+
type: string
|
907
|
+
title:
|
908
|
+
description: Titles of the related resource.
|
909
|
+
type: array
|
910
|
+
items:
|
911
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
912
|
+
contributor:
|
913
|
+
description: Agents contributing in some way to the creation and history of the
|
914
|
+
related resource.
|
915
|
+
type: array
|
916
|
+
items:
|
917
|
+
$ref: "#/components/schemas/Contributor"
|
918
|
+
event:
|
919
|
+
description: Events in the history of the related resource.
|
920
|
+
type: array
|
921
|
+
items:
|
922
|
+
$ref: "#/components/schemas/Event"
|
923
|
+
form:
|
924
|
+
description: Characteristics of the related resource's physical, digital, and intellectual
|
925
|
+
form and genre.
|
926
|
+
type: array
|
927
|
+
items:
|
928
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
929
|
+
language:
|
930
|
+
description: Languages, scripts, symbolic systems, and notations used in all or
|
931
|
+
part of a related resource.
|
932
|
+
type: array
|
933
|
+
items:
|
934
|
+
$ref: "#/components/schemas/Language"
|
935
|
+
note:
|
936
|
+
description: Additional information relevant to a related resource.
|
937
|
+
type: array
|
938
|
+
items:
|
939
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
940
|
+
identifier:
|
941
|
+
description: Identifiers and URIs associated with the related resource.
|
942
|
+
type: array
|
943
|
+
items:
|
944
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
945
|
+
subject:
|
946
|
+
description: Terms associated with the intellectual content of the related resource.
|
947
|
+
type: array
|
948
|
+
items:
|
949
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
950
|
+
purl:
|
951
|
+
description: Stanford persistent URL associated with the related resource.
|
952
|
+
type: string
|
953
|
+
format: uri
|
954
|
+
access:
|
955
|
+
$ref: "#/components/schemas/DescriptiveAccessMetadata"
|
746
956
|
ReleaseTag:
|
747
957
|
description: A tag that indicates the item or collection should be released.
|
748
958
|
type: object
|
@@ -790,10 +1000,10 @@ components:
|
|
790
1000
|
description:
|
791
1001
|
$ref: '#/components/schemas/Description'
|
792
1002
|
required:
|
1003
|
+
- administrative
|
793
1004
|
- label
|
794
1005
|
- type
|
795
1006
|
- version
|
796
|
-
- administrative
|
797
1007
|
RequestCollection:
|
798
1008
|
description: Same as a Collection, but doesn't have an externalIdentifier as one will be created
|
799
1009
|
type: object
|
@@ -821,10 +1031,11 @@ components:
|
|
821
1031
|
identification:
|
822
1032
|
$ref: '#/components/schemas/CollectionIdentification'
|
823
1033
|
required:
|
1034
|
+
- access
|
1035
|
+
- administrative
|
824
1036
|
- label
|
825
1037
|
- type
|
826
1038
|
- version
|
827
|
-
- access
|
828
1039
|
RequestDRO:
|
829
1040
|
description: A request to create a DRO. This has the same general structure as a DRO but doesn't have externalIdentifier and doesn't require the access subschema. If no access subschema is provided, these values will be inherited from the AdminPolicy.
|
830
1041
|
type: object
|
@@ -866,10 +1077,11 @@ components:
|
|
866
1077
|
geographic:
|
867
1078
|
$ref: '#/components/schemas/Geographic'
|
868
1079
|
required:
|
1080
|
+
- administrative
|
1081
|
+
- identification
|
869
1082
|
- label
|
870
1083
|
- type
|
871
1084
|
- version
|
872
|
-
- identification
|
873
1085
|
RequestDROStructural:
|
874
1086
|
description: Structural metadata
|
875
1087
|
type: object
|
@@ -914,7 +1126,7 @@ components:
|
|
914
1126
|
items:
|
915
1127
|
$ref: '#/components/schemas/MessageDigest'
|
916
1128
|
access:
|
917
|
-
$ref: '#/components/schemas/
|
1129
|
+
$ref: '#/components/schemas/FileAccess'
|
918
1130
|
administrative:
|
919
1131
|
$ref: '#/components/schemas/FileAdministrative'
|
920
1132
|
presentation:
|
@@ -962,6 +1174,13 @@ components:
|
|
962
1174
|
properties:
|
963
1175
|
sourceId:
|
964
1176
|
type: string
|
1177
|
+
description: >
|
1178
|
+
Unique identifier in some other system. This is because a large proportion of what is deposited in SDR,
|
1179
|
+
historically and currently, are representations of objects that are also represented in other systems.
|
1180
|
+
For example, digitized paper and A/V collections have physical manifestations, and those physical objects are managed
|
1181
|
+
in systems that have their own identifiers. Similarly, books have barcodes, archival materials have collection numbers
|
1182
|
+
and physical locations, etc. The sourceId allows determining if an item has been deposited before and where to
|
1183
|
+
look for the original item if you're looking at its SDR representation.
|
965
1184
|
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
966
1185
|
catalogLinks:
|
967
1186
|
type: array
|
@@ -986,8 +1205,8 @@ components:
|
|
986
1205
|
- right-to-left
|
987
1206
|
- left-to-right
|
988
1207
|
Source:
|
989
|
-
description: Property model for indicating the vocabulary, authority, or
|
990
|
-
origin for a term, code, or identifier.
|
1208
|
+
description: Property model for indicating the vocabulary, authority, or
|
1209
|
+
other origin for a term, code, or identifier.
|
991
1210
|
type: object
|
992
1211
|
additionalProperties: false
|
993
1212
|
properties:
|
@@ -1001,3 +1220,31 @@ components:
|
|
1001
1220
|
value:
|
1002
1221
|
description: String describing the value source.
|
1003
1222
|
type: string
|
1223
|
+
note:
|
1224
|
+
description: Other information related to the value source.
|
1225
|
+
type: array
|
1226
|
+
items:
|
1227
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
1228
|
+
Standard:
|
1229
|
+
description: Property model for indicating the encoding, standard, or syntax
|
1230
|
+
to which a value conforms.
|
1231
|
+
type: object
|
1232
|
+
additionalProperties: false
|
1233
|
+
properties:
|
1234
|
+
code:
|
1235
|
+
description: Code representing the standard or encoding.
|
1236
|
+
type: string
|
1237
|
+
uri:
|
1238
|
+
description: URI for the standard or encoding.
|
1239
|
+
type: string
|
1240
|
+
format: uri
|
1241
|
+
value:
|
1242
|
+
description: String describing the standard or encoding.
|
1243
|
+
type: string
|
1244
|
+
note:
|
1245
|
+
description: Other information related to the standard or encoding.
|
1246
|
+
type: array
|
1247
|
+
items:
|
1248
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
1249
|
+
source:
|
1250
|
+
$ref: "#/components/schemas/Source"
|