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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +115 -2
  3. data/cocina-models.gemspec +3 -2
  4. data/docs/maps/DRO.json +4 -0
  5. data/lib/cocina/generator/generator.rb +3 -0
  6. data/lib/cocina/generator/schema_value.rb +2 -2
  7. data/lib/cocina/models.rb +1 -2
  8. data/lib/cocina/models/admin_policy_administrative.rb +1 -1
  9. data/lib/cocina/models/administrative.rb +1 -1
  10. data/lib/cocina/models/contributor.rb +3 -1
  11. data/lib/cocina/models/description.rb +4 -2
  12. data/lib/cocina/models/descriptive_access_metadata.rb +13 -0
  13. data/lib/cocina/models/descriptive_admin_metadata.rb +3 -1
  14. data/lib/cocina/models/descriptive_basic_value.rb +10 -3
  15. data/lib/cocina/models/descriptive_parallel_value.rb +9 -0
  16. data/lib/cocina/models/descriptive_structured_value.rb +1 -1
  17. data/lib/cocina/models/descriptive_value.rb +10 -4
  18. data/lib/cocina/models/descriptive_value_required.rb +10 -4
  19. data/lib/cocina/models/dro.rb +1 -1
  20. data/lib/cocina/models/dro_access.rb +2 -0
  21. data/lib/cocina/models/event.rb +1 -1
  22. data/lib/cocina/models/file.rb +1 -1
  23. data/lib/cocina/models/file_access.rb +16 -0
  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 +1 -1
  29. data/lib/cocina/models/request_file.rb +1 -1
  30. data/lib/cocina/models/request_identification.rb +2 -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 +342 -95
  35. metadata +18 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa8dd7285b70bcc1a81fd099ada06d39ceba9f24900076deec73dd46573df2f4
4
- data.tar.gz: c196659cf0ce69aee69ffc3472235d68d9e4eb0503ed70aa5c79f517c8412498
3
+ metadata.gz: 5bfcf544ee3b4b2a024388b61fae8a9244d7db2e8b2272897b55679d81edbcb4
4
+ data.tar.gz: 8fb5f5a7a05a1fd070c1b4a8e0b1849d74bb6dc88d8c9e956aef984ae8970bc1
5
5
  SHA512:
6
- metadata.gz: a001d343d4233b377aa0c666383ce2f70abb36f3fc05169f007fc7f1b6f8e9784f5ff67f204255a585b1f4e9ddd6c3d624a4baf0057b78607c73b7df93e3b173
7
- data.tar.gz: cb9db638c1ffaad358e05bc097c5fc9ec44a3df56bb4b13418f417daf2a71879561885a9e26adfcaf37e37bdf3542fca9055340816f2253b8f5f9f4c69b0eef0
6
+ metadata.gz: 9117e97169200229cd278e261ce211ab3927513705f0be47918d0ea1e9ec2407dc5f4ed0e6eddfd3213129493ca3b9b0b1fff783a431fb6805bc037d42918ead
7
+ data.tar.gz: 576242ad13d3e63263dc893cfc3e6fa6341391aa21c98735878ce9ca83969710b606987d891fa4d22cafe5899b2ee74ee3c37662afaf2e2661323546a78554cf
@@ -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
@@ -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
@@ -81,6 +81,10 @@
81
81
  "description": "The human readable copyright statement that applies to the DRO.",
82
82
  "type": "string"
83
83
  },
84
+ "controlledDigitalLending": {
85
+ "description": "If the object is available for controlled digital lending.",
86
+ "type": "boolean"
87
+ },
84
88
  "download": {
85
89
  "description": "Download level for the DRO metadata.",
86
90
  "type": "string",
@@ -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)
@@ -24,7 +24,7 @@ module Cocina
24
24
  # Use for the File.
25
25
  attribute :use, Types::Strict::String.meta(omittable: true)
26
26
  attribute :hasMessageDigests, Types::Strict::Array.of(MessageDigest).default([].freeze)
27
- attribute(:access, Access.default { Access.new })
27
+ attribute(:access, FileAccess.default { FileAccess.new })
28
28
  attribute(:administrative, FileAdministrative.default { FileAdministrative.new })
29
29
  attribute :presentation, Presentation.optional.meta(omittable: true)
30
30
  end