diff --git a/lib/cocina/models/description.rb b/lib/cocina/models/description.rb index 2dfb8f36..dfe9e3b6 100644 --- a/lib/cocina/models/description.rb +++ b/lib/cocina/models/description.rb @@ -7,6 +7,7 @@ class Description < Struct attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true) attribute :event, Types::Strict::Array.of(Event).meta(omittable: true) attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true) + attribute :geographic, Types::Strict::Array.of(DescriptiveGeographicMetadata).meta(omittable: true) attribute :language, Types::Strict::Array.of(Language).meta(omittable: true) attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true) attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true) diff --git a/lib/cocina/models/descriptive_geographic_metadata.rb b/lib/cocina/models/descriptive_geographic_metadata.rb new file mode 100644 index 00000000..8e46b010 --- /dev/null +++ b/lib/cocina/models/descriptive_geographic_metadata.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Cocina + module Models + class DescriptiveGeographicMetadata < Struct + attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true) + attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true) + end + end +end diff --git a/openapi.yml b/openapi.yml index 9a20406e..30c1339e 100644 --- a/openapi.yml +++ b/openapi.yml @@ -319,6 +319,11 @@ components: type: array items: $ref: "#/components/schemas/DescriptiveValue" + geographic: + description: Geographic description for items with coordinates or bounding boxes. + type: array + items: + $ref: "#/components/schemas/DescriptiveGeographicMetadata" language: description: Languages, scripts, symbolic systems, and notations used in all or part of a resource. @@ -484,6 +489,20 @@ components: $ref: "#/components/schemas/DescriptiveValue" valueLanguage: $ref: "#/components/schemas/DescriptiveValueLanguage" + DescriptiveGeographicMetadata: + description: Value model for mods geographic extension metadata + type: object + additionalProperties: false + properties: + form: + type: array + items: + $ref: "#/components/schemas/DescriptiveValue" + subject: + description: Terms associated with the intellectual content of the related resource. + type: array + items: + $ref: "#/components/schemas/DescriptiveValue" DescriptiveParallelValue: description: Value model for multiple representations of the same information (e.g. in different languages). type: object