lib/cocina/models/request_admin_policy.rb in cocina-models-0.29.0 vs lib/cocina/models/request_admin_policy.rb in cocina-models-0.30.0

- old
+ new

@@ -1,11 +1,23 @@ # frozen_string_literal: true module Cocina module Models - # A request to create an AdminPolicy object. - # This is the same as an AdminPolicy, but without externalIdentifier (as that wouldn't have been created yet). class RequestAdminPolicy < Struct - include AdminPolicyAttributes + include Checkable + + TYPES = ['http://cocina.sul.stanford.edu/models/admin_policy.jsonld'].freeze + + # example: item + attribute :type, Types::Strict::String.enum(*RequestAdminPolicy::TYPES) + attribute :label, Types::Strict::String + attribute :version, Types::Strict::Integer + attribute(:administrative, AdminPolicyAdministrative.default { AdminPolicyAdministrative.new }) + attribute :description, Description.optional.meta(omittable: true) + + def self.new(attributes = default_attributes, safe = false, validate = true, &block) + Validator.validate(self, attributes.with_indifferent_access) if validate + super(attributes, safe, &block) + end end end end