cocina-models 0.32.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +8 -1
  3. data/.rubocop.yml +115 -2
  4. data/README.md +1 -1
  5. data/cocina-models.gemspec +3 -2
  6. data/lib/cocina/generator/generator.rb +3 -0
  7. data/lib/cocina/generator/schema_value.rb +2 -2
  8. data/lib/cocina/models.rb +1 -2
  9. data/lib/cocina/models/admin_policy_administrative.rb +1 -1
  10. data/lib/cocina/models/administrative.rb +1 -1
  11. data/lib/cocina/models/contributor.rb +3 -1
  12. data/lib/cocina/models/description.rb +4 -2
  13. data/lib/cocina/models/descriptive_access_metadata.rb +13 -0
  14. data/lib/cocina/models/descriptive_admin_metadata.rb +3 -1
  15. data/lib/cocina/models/descriptive_basic_value.rb +10 -3
  16. data/lib/cocina/models/descriptive_parallel_value.rb +9 -0
  17. data/lib/cocina/models/descriptive_structured_value.rb +1 -1
  18. data/lib/cocina/models/descriptive_value.rb +10 -4
  19. data/lib/cocina/models/descriptive_value_required.rb +10 -4
  20. data/lib/cocina/models/dro.rb +1 -1
  21. data/lib/cocina/models/dro_access.rb +2 -0
  22. data/lib/cocina/models/event.rb +1 -1
  23. data/lib/cocina/models/file.rb +1 -1
  24. data/lib/cocina/models/identification.rb +2 -0
  25. data/lib/cocina/models/language.rb +30 -0
  26. data/lib/cocina/models/related_resource.rb +21 -0
  27. data/lib/cocina/models/request_collection.rb +1 -1
  28. data/lib/cocina/models/request_dro.rb +2 -2
  29. data/lib/cocina/models/request_identification.rb +13 -0
  30. data/lib/cocina/models/sequence.rb +1 -0
  31. data/lib/cocina/models/source.rb +1 -0
  32. data/lib/cocina/models/standard.rb +16 -0
  33. data/lib/cocina/models/version.rb +1 -1
  34. data/openapi.yml +322 -93
  35. metadata +18 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1bcad8e4f77e24566d85e9e60107eed4cc45b7e31daedf15106ae86d47c9f58b
4
- data.tar.gz: 26fc29b912821bf4bd9874e3e758acb2777b90729f5dd69b0fd12aeb240cbf31
3
+ metadata.gz: 6f64b937df8c8d8c7bbd64af57d587e27843ebcd7e751ea4caff887aaa78c7a1
4
+ data.tar.gz: b697ab2535648dd6d1520f35da839e599756e7c49bbc2803d17a5d6e2db9307d
5
5
  SHA512:
6
- metadata.gz: b91bd04128801af9435c9ae35a5157a4bb2e504906737f908da3f444bca4150e1132a223fc3709309d0df5a26e869eaea6128ba809e7bfcd261d24b248658b96
7
- data.tar.gz: b6caf15cd36ee9faaebbb10be8f298c9501e727862510b0de0696e83ac863934e68320122ba35fcb7a82fd18a557aed62d987c9021a7c2447b80b73cbcf6d475
6
+ metadata.gz: c67039d09d1d04e7bba5aaf0199402e5e1e0b9008b56a268735f59d4d61bd92f5c6e17f0edaf8625102f5e7bfd25e7cc66b4e58e51193e811bf2635b43ff21cc
7
+ data.tar.gz: d7eeeccbc2a215cdee206b746bda7e38e7c86fca21b5c92f40057c5ffa760494cc539490dd35734314e82506f0ad922ae15f68bcf414034d9ce2fad06375397c
@@ -2,4 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- ## Was the documentation (README, wiki) updated?
5
+ ## How was this change tested?
6
+
7
+
8
+
9
+ ## Which documentation and/or configurations were updated?
10
+
11
+
12
+
@@ -4,7 +4,10 @@ inherit_from: .rubocop_todo.yml
4
4
  require:
5
5
  - rubocop-rspec
6
6
 
7
- Metrics/LineLength:
7
+ AllCops:
8
+ TargetRubyVersion: 2.5
9
+
10
+ Layout/LineLength:
8
11
  Max: 114
9
12
  Exclude:
10
13
  - lib/cocina/models/*
@@ -26,7 +29,117 @@ RSpec/ExampleLength:
26
29
  - spec/cocina/models/description_spec.rb
27
30
  - spec/cocina/models/dro_shared_examples.rb
28
31
 
29
-
30
32
  Style/Documentation:
31
33
  Exclude:
32
34
  - lib/cocina/models/*
35
+
36
+ Layout/EmptyLinesAroundAttributeAccessor:
37
+ Enabled: true
38
+
39
+ Layout/SpaceAroundMethodCallOperator:
40
+ Enabled: true
41
+
42
+ Lint/DeprecatedOpenSSLConstant:
43
+ Enabled: true
44
+
45
+ Lint/MixedRegexpCaptureTypes:
46
+ Enabled: true
47
+
48
+ Lint/RaiseException:
49
+ Enabled: true
50
+
51
+ Lint/StructNewOverride:
52
+ Enabled: true
53
+
54
+ Style/AccessorGrouping:
55
+ Enabled: true
56
+
57
+ Style/BisectedAttrAccessor:
58
+ Enabled: true
59
+
60
+ Style/ExponentialNotation:
61
+ Enabled: true
62
+
63
+ Style/HashEachMethods:
64
+ Enabled: true
65
+
66
+ Style/HashTransformKeys:
67
+ Enabled: true
68
+
69
+ Style/HashTransformValues:
70
+ Enabled: true
71
+
72
+ Style/RedundantAssignment:
73
+ Enabled: true
74
+
75
+ Style/RedundantFetchBlock:
76
+ Enabled: true
77
+
78
+ Style/RedundantRegexpCharacterClass:
79
+ Enabled: true
80
+
81
+ Style/RedundantRegexpEscape:
82
+ Enabled: true
83
+
84
+ Style/SlicingWithRange:
85
+ Enabled: true
86
+
87
+ Lint/BinaryOperatorWithIdenticalOperands:
88
+ Enabled: true
89
+
90
+ Lint/DuplicateElsifCondition:
91
+ Enabled: true
92
+
93
+ Lint/DuplicateRescueException:
94
+ Enabled: true
95
+
96
+ Lint/EmptyConditionalBody:
97
+ Enabled: true
98
+
99
+ Lint/FloatComparison:
100
+ Enabled: true
101
+
102
+ Lint/MissingSuper:
103
+ Enabled: true
104
+
105
+ Lint/OutOfRangeRegexpRef:
106
+ Enabled: true
107
+
108
+ Lint/SelfAssignment:
109
+ Enabled: true
110
+
111
+ Lint/TopLevelReturnWithArgument:
112
+ Enabled: true
113
+
114
+ Lint/UnreachableLoop:
115
+ Enabled: true
116
+
117
+ Style/ArrayCoercion:
118
+ Enabled: true
119
+
120
+ Style/CaseLikeIf:
121
+ Enabled: true
122
+
123
+ Style/ExplicitBlockArgument:
124
+ Enabled: true
125
+
126
+ Style/GlobalStdStream:
127
+ Enabled: true
128
+
129
+ Style/HashAsLastArrayItem:
130
+ Enabled: true
131
+
132
+ Style/HashLikeCase:
133
+ Enabled: true
134
+
135
+ Style/OptionalBooleanParameter:
136
+ Enabled: false
137
+
138
+ Style/RedundantFileExtensionInRequire:
139
+ Enabled: true
140
+
141
+ Style/SingleArgumentDig:
142
+ Enabled: true
143
+
144
+ Style/StringConcatenation:
145
+ Enabled: true
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.com/sul-dlss/cocina-models.svg?branch=master)](https://travis-ci.com/sul-dlss/cocina-models)
1
+ [![CircleCI](https://circleci.com/gh/sul-dlss/cocina-models.svg?style=svg)](https://circleci.com/gh/sul-dlss/cocina-models)
2
2
  [![Test Coverage](https://api.codeclimate.com/v1/badges/472273351516ac01dce1/test_coverage)](https://codeclimate.com/github/sul-dlss/cocina-models/test_coverage)
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/472273351516ac01dce1/maintainability)](https://codeclimate.com/github/sul-dlss/cocina-models/maintainability)
4
4
  [![Gem Version](https://badge.fury.io/rb/cocina-models.svg)](https://badge.fury.io/rb/cocina-models)
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.bindir = 'exe'
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
+ spec.required_ruby_version = '~> 2.5'
25
26
 
26
27
  spec.add_dependency 'activesupport'
27
28
  spec.add_dependency 'dry-struct', '~> 1.0'
@@ -33,9 +34,9 @@ Gem::Specification.new do |spec|
33
34
 
34
35
  spec.add_development_dependency 'bundler', '~> 2.0'
35
36
  spec.add_development_dependency 'committee'
36
- spec.add_development_dependency 'rake', '~> 12.0'
37
+ spec.add_development_dependency 'rake', '~> 13.0'
37
38
  spec.add_development_dependency 'rspec', '~> 3.0'
38
- spec.add_development_dependency 'rubocop', '~> 0.74.0'
39
+ spec.add_development_dependency 'rubocop', '~> 0.87'
39
40
  spec.add_development_dependency 'rubocop-rspec'
40
41
  spec.add_development_dependency 'simplecov', '~> 0.17.0'
41
42
  end
@@ -17,10 +17,13 @@ module Cocina
17
17
  def generate
18
18
  clean_output
19
19
 
20
+ # rubocop:disable Style/HashEachMethods
21
+ # This is not a Hash
20
22
  schemas.keys.each do |schema_name|
21
23
  schema = schema_for(schema_name)
22
24
  generate_for(schema) if schema
23
25
  end
26
+ # rubocop:enable Style/HashEachMethods
24
27
 
25
28
  generate_vocab
26
29
  end
@@ -4,11 +4,11 @@ module Cocina
4
4
  module Generator
5
5
  # Class for generating from an openapi value
6
6
  class SchemaValue < SchemaBase
7
- # rubocop:disable Metrics/LineLength
7
+ # rubocop:disable Layout/LineLength
8
8
  def generate
9
9
  "#{description}#{example}attribute :#{name.camelize(:lower)}, Types::#{dry_datatype(schema_doc)}#{default}#{enum}#{omittable}"
10
10
  end
11
- # rubocop:enable Metrics/LineLength
11
+ # rubocop:enable Layout/LineLength
12
12
 
13
13
  private
14
14
 
@@ -14,7 +14,6 @@ require 'thor'
14
14
 
15
15
  # Help Zeitwerk find some of our classes
16
16
  class CocinaModelsInflector < Zeitwerk::Inflector
17
- # rubocop:disable Metrics/CyclomaticComplexity
18
17
  # rubocop:disable Metrics/MethodLength
19
18
  def camelize(basename, _abspath)
20
19
  case basename
@@ -34,7 +33,7 @@ class CocinaModelsInflector < Zeitwerk::Inflector
34
33
  super
35
34
  end
36
35
  end
37
- # rubocop:enable Metrics/CyclomaticComplexity
36
+
38
37
  # rubocop:enable Metrics/MethodLength
39
38
  end
40
39
 
@@ -5,7 +5,7 @@ module Cocina
5
5
  class AdminPolicyAdministrative < Struct
6
6
  attribute :defaultObjectRights, Types::Strict::String.default('<?xml version="1.0" encoding="UTF-8"?><rightsMetadata><access type="discover"><machine><world/></machine></access><access type="read"><machine><world/></machine></access><use><human type="useAndReproduction"/><human type="creativeCommons"/><machine type="creativeCommons" uri=""/><human type="openDataCommons"/><machine type="openDataCommons" uri=""/></use><copyright><human/></copyright></rightsMetadata>').meta(omittable: true)
7
7
  attribute :registrationWorkflow, Types::Strict::String.meta(omittable: true)
8
- attribute :hasAdminPolicy, Types::Strict::String.meta(omittable: true)
8
+ attribute :hasAdminPolicy, Types::Strict::String
9
9
  end
10
10
  end
11
11
  end
@@ -4,7 +4,7 @@ module Cocina
4
4
  module Models
5
5
  class Administrative < Struct
6
6
  # example: druid:bc123df4567
7
- attribute :hasAdminPolicy, Types::Strict::String.meta(omittable: true)
7
+ attribute :hasAdminPolicy, Types::Strict::String
8
8
  attribute :releaseTags, Types::Strict::Array.of(ReleaseTag).meta(omittable: true)
9
9
  # Administrative or Internal project this resource is a part of
10
10
  # example: Google Books
@@ -6,9 +6,11 @@ module Cocina
6
6
  attribute :name, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
7
  # Entity type of the contributor (person, organization, etc.).
8
8
  attribute :type, Types::Strict::String.meta(omittable: true)
9
- # Status of the contributor relative to other parallel contributors.
9
+ # Status of the contributor relative to other parallel contributors (e.g. the primary author among a group of contributors).
10
10
  attribute :status, Types::Strict::String.meta(omittable: true)
11
11
  attribute :role, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
12
+ attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
13
+ attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
12
14
  end
13
15
  end
14
16
  end
@@ -7,12 +7,14 @@ module Cocina
7
7
  attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
8
8
  attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
9
9
  attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
10
- attribute :language, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
10
+ attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
11
11
  attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
12
12
  attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
13
+ attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
13
14
  # Stanford persistent URL associated with the resource.
14
15
  attribute :purl, Types::Strict::String.meta(omittable: true)
15
- attribute :url, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
16
+ attribute :access, DescriptiveAccessMetadata.optional.meta(omittable: true)
17
+ attribute :relatedResource, Types::Strict::Array.of(RelatedResource).meta(omittable: true)
16
18
  attribute :marcEncodedData, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
17
19
  attribute :adminMetadata, DescriptiveAdminMetadata.optional.meta(omittable: true)
18
20
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cocina
4
+ module Models
5
+ class DescriptiveAccessMetadata < Struct
6
+ attribute :url, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
+ attribute :physicalLocation, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
8
+ attribute :accessContact, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
9
+ attribute :digitalRepository, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
10
+ attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
11
+ end
12
+ end
13
+ end
@@ -5,8 +5,10 @@ module Cocina
5
5
  class DescriptiveAdminMetadata < Struct
6
6
  attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
7
7
  attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
8
- attribute :language, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
8
+ attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
9
9
  attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
10
+ attribute :standard, Standard.optional.meta(omittable: true)
11
+ attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
10
12
  end
11
13
  end
12
14
  end
@@ -3,19 +3,26 @@
3
3
  module Cocina
4
4
  module Models
5
5
  class DescriptiveBasicValue < Struct
6
+ attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
+ attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
6
8
  # String value of the descriptive element.
7
9
  attribute :value, Types::Strict::String.meta(omittable: true)
8
10
  # Type of value provided by the descriptive element.
9
11
  attribute :type, Types::Strict::String.meta(omittable: true)
10
- # Status of the descriptive element relative to other instances of the element.
12
+ # Status of the descriptive element value relative to other instances of the element.
11
13
  attribute :status, Types::Strict::String.meta(omittable: true)
12
14
  # Code value of the descriptive element.
13
15
  attribute :code, Types::Strict::String.meta(omittable: true)
14
16
  # URI value of the descriptive element.
15
17
  attribute :uri, Types::Strict::String.meta(omittable: true)
16
- attribute :standard, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
17
- attribute :encoding, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
18
+ attribute :standard, Standard.optional.meta(omittable: true)
19
+ attribute :encoding, Standard.optional.meta(omittable: true)
18
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)
19
26
  end
20
27
  end
21
28
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cocina
4
+ module Models
5
+ class DescriptiveParallelValue < Struct
6
+ attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
+ end
8
+ end
9
+ end
@@ -3,7 +3,7 @@
3
3
  module Cocina
4
4
  module Models
5
5
  class DescriptiveStructuredValue < Struct
6
- attribute :structuredValue, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
6
+ attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
7
  end
8
8
  end
9
9
  end
@@ -3,20 +3,26 @@
3
3
  module Cocina
4
4
  module Models
5
5
  class DescriptiveValue < Struct
6
+ attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
+ attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
6
8
  # String value of the descriptive element.
7
9
  attribute :value, Types::Strict::String.meta(omittable: true)
8
10
  # Type of value provided by the descriptive element.
9
11
  attribute :type, Types::Strict::String.meta(omittable: true)
10
- # Status of the descriptive element relative to other instances of the element.
12
+ # Status of the descriptive element value relative to other instances of the element.
11
13
  attribute :status, Types::Strict::String.meta(omittable: true)
12
14
  # Code value of the descriptive element.
13
15
  attribute :code, Types::Strict::String.meta(omittable: true)
14
16
  # URI value of the descriptive element.
15
17
  attribute :uri, Types::Strict::String.meta(omittable: true)
16
- attribute :standard, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
17
- attribute :encoding, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
18
+ attribute :standard, Standard.optional.meta(omittable: true)
19
+ attribute :encoding, Standard.optional.meta(omittable: true)
18
20
  attribute :source, Source.optional.meta(omittable: true)
19
- attribute :structuredValue, Types::Strict::Array.of(DescriptiveBasicValue).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)
20
26
  attribute :appliesTo, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
21
27
  end
22
28
  end
@@ -3,20 +3,26 @@
3
3
  module Cocina
4
4
  module Models
5
5
  class DescriptiveValueRequired < Struct
6
+ attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
+ attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
6
8
  # String value of the descriptive element.
7
9
  attribute :value, Types::Strict::String.meta(omittable: true)
8
10
  # Type of value provided by the descriptive element.
9
11
  attribute :type, Types::Strict::String.meta(omittable: true)
10
- # Status of the descriptive element relative to other instances of the element.
12
+ # Status of the descriptive element value relative to other instances of the element.
11
13
  attribute :status, Types::Strict::String.meta(omittable: true)
12
14
  # Code value of the descriptive element.
13
15
  attribute :code, Types::Strict::String.meta(omittable: true)
14
16
  # URI value of the descriptive element.
15
17
  attribute :uri, Types::Strict::String.meta(omittable: true)
16
- attribute :standard, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
17
- attribute :encoding, Types::Strict::Array.of(Types::Strict::String).meta(omittable: true)
18
+ attribute :standard, Standard.optional.meta(omittable: true)
19
+ attribute :encoding, Standard.optional.meta(omittable: true)
18
20
  attribute :source, Source.optional.meta(omittable: true)
19
- attribute :structuredValue, Types::Strict::Array.of(DescriptiveBasicValue).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)
20
26
  attribute :appliesTo, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
21
27
  end
22
28
  end
@@ -31,7 +31,7 @@ module Cocina
31
31
  # Version for the DRO within SDR.
32
32
  attribute :version, Types::Strict::Integer
33
33
  attribute(:access, DROAccess.default { DROAccess.new })
34
- attribute :administrative, Administrative.optional.meta(omittable: true)
34
+ attribute(:administrative, Administrative.default { Administrative.new })
35
35
  attribute :description, Description.optional.meta(omittable: true)
36
36
  attribute :identification, Identification.optional.meta(omittable: true)
37
37
  attribute :structural, DROStructural.optional.meta(omittable: true)
@@ -4,6 +4,8 @@ module Cocina
4
4
  module Models
5
5
  class DROAccess < Struct
6
6
  attribute :access, Types::Strict::String.default('dark').enum('world', 'stanford', 'location-based', 'citation-only', 'dark').meta(omittable: true)
7
+ # Available for controlled digital lending.
8
+ attribute :controlledDigitalLending, Types::Strict::Bool.meta(omittable: true)
7
9
  # The human readable copyright statement that applies
8
10
  # example: Copyright World Trade Organization
9
11
  attribute :copyright, Types::Strict::String.meta(omittable: true)
@@ -3,7 +3,7 @@
3
3
  module Cocina
4
4
  module Models
5
5
  class Event < Struct
6
- attribute :structuredValue, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
6
+ attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
7
7
  # Description of the event (creation, publication, etc.).
8
8
  attribute :type, Types::Strict::String.meta(omittable: true)
9
9
  attribute :date, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)