Sha256: 6cc25db79f2319345b113207cc5fe683205c84be4620179a9166bf797f440ba1
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true module Cocina module Models # A Request to create a digital repository object. (to create) object. # This is same as a DRO, but without externalIdentifier (as that wouldn't have been created yet) # See http://sul-dlss.github.io/cocina-models/maps/DRO.json class RequestDRO < Struct # Structural sub-schema that contains RequestFileSet (unlike the DRO which contains FileSet) class Structural < Struct attribute :contains, Types::Strict::Array.of(RequestFileSet).meta(omittable: true) attribute :isMemberOf, Types::Strict::String.meta(omittable: true) attribute :hasMemberOrders, Types::Strict::Array.of(Sequence).meta(omittable: true) end attribute :type, Types::String.enum(*DRO::TYPES) attribute :label, Types::Strict::String attribute :version, Types::Coercible::Integer attribute(:access, DRO::Access.default { DRO::Access.new }) attribute(:administrative, DRO::Administrative.default { DRO::Administrative.new }) # Allowing description to be omittable for now (until rolled out to consumers), # but I think it's actually required for every DRO attribute :description, Description.optional.meta(omittable: true) attribute(:identification, DRO::Identification.default { DRO::Identification.new }) attribute(:structural, Structural.default { Structural.new }) def self.from_dynamic(dyn) RequestDRO.new(dyn) end def self.from_json(json) from_dynamic(JSON.parse(json)) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cocina-models-0.24.0 | lib/cocina/models/request_dro.rb |
cocina-models-0.23.0 | lib/cocina/models/request_dro.rb |