mex.common.models package

Subpackages

Submodules

mex.common.models.access_platform module

class mex.common.models.access_platform.AccessPlatformFilter(*, entityType: Literal['AccessPlatformFilter'] = 'AccessPlatformFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for access platform items.

entityType: Annotated[Literal['AccessPlatformFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.AccessPlatformMapping(*, entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an access platform transformation.

alternativeTitle: list[MappingField[list[Text]]]
contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]
description: list[MappingField[list[Text]]]
endpointDescription: list[MappingField[Link | NoneType]]
endpointType: list[MappingField[APIType | NoneType]]
endpointURL: list[MappingField[Link | NoneType]]
entityType: Annotated[Literal['AccessPlatformMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
landingPage: list[MappingField[list[Link]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
title: list[MappingField[list[Text]]]
unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
class mex.common.models.access_platform.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an access platform item.

entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an access platform item.

entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedAccessPlatformIdentifier
class mex.common.models.access_platform.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')

Bases: _OptionalLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged access platform items.

entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])

Bases: _OptionalLists, _OptionalValues, _RequiredValues

All fields for a valid access platform except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')

Bases: BaseAccessPlatform, ExtractedData

An automatically extracted metadata item describing an access platform.

entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedAccessPlatformIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.access_platform.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)

Bases: BaseAccessPlatform, MergedItem

The result of merging all extracted items and rules for an access platform.

entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged access platform items.

alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
endpointDescription: list[MergedPrimarySourceIdentifier]
endpointType: list[MergedPrimarySourceIdentifier]
endpointURL: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
class mex.common.models.access_platform.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier)

Bases: _OptionalLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for an access platform.

entityType: Annotated[Literal['PreviewAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.access_platform.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged access platform items.

entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.activity module

class mex.common.models.activity.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for activity items.

entityType: Annotated[Literal['ActivityFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.ActivityMapping(*, entityType: Literal['ActivityMapping'] = 'ActivityMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an activity transformation.

abstract: list[MappingField[list[Text]]]
activityType: list[MappingField[list[ActivityType]]]
alternativeTitle: list[MappingField[list[Text]]]
contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
documentation: list[MappingField[list[Link]]]
end: list[MappingField[list[YearMonthDay | YearMonth | Year]]]
entityType: Annotated[Literal['ActivityMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]]
funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]]
fundingProgram: list[MappingField[list[str]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]
involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]
responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
shortName: list[MappingField[list[Text]]]
start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]
succeeds: list[MappingField[list[MergedActivityIdentifier]]]
theme: list[MappingField[list[Theme]]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
website: list[MappingField[list[Link]]]
class mex.common.models.activity.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an activity item.

entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an activity item.

entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedActivityIdentifier
class mex.common.models.activity.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged activity items.

entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid activity except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')

Bases: BaseActivity, ExtractedData

An automatically extracted metadata set describing an activity.

entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedActivityIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.activity.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)

Bases: BaseActivity, MergedItem

The result of merging all extracted items and rules for an activity.

entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged activity items.

abstract: list[MergedPrimarySourceIdentifier]
activityType: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
end: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[MergedPrimarySourceIdentifier]
funderOrCommissioner: list[MergedPrimarySourceIdentifier]
fundingProgram: list[MergedPrimarySourceIdentifier]
involvedPerson: list[MergedPrimarySourceIdentifier]
involvedUnit: list[MergedPrimarySourceIdentifier]
isPartOfActivity: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: list[MergedPrimarySourceIdentifier]
responsibleUnit: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
start: list[MergedPrimarySourceIdentifier]
succeeds: list[MergedPrimarySourceIdentifier]
theme: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
website: list[MergedPrimarySourceIdentifier]
class mex.common.models.activity.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier)

Bases: _OptionalLists, _SparseLists, PreviewItem

Preview for merging all extracted items and rules for an activity.

entityType: Annotated[Literal['PreviewActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.activity.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged activity items.

entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.bibliographic_resource module

class mex.common.models.bibliographic_resource.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged bibliographic resource items.

entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid bibliographic resource except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for bibliographic resource items.

entityType: Annotated[Literal['BibliographicResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.BibliographicResourceMapping(*, entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a bibliographic resource transformation.

abstract: list[MappingField[list[Text]]]
accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
alternateIdentifier: list[MappingField[list[str]]]
alternativeTitle: list[MappingField[list[Text]]]
bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]]
contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
distribution: list[MappingField[list[MergedDistributionIdentifier]]]
doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]
edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]]
editor: list[MappingField[list[MergedPersonIdentifier]]]
editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]]
entityType: Annotated[Literal['BibliographicResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]
issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
journal: list[MappingField[list[Text]]]
keyword: list[MappingField[list[Text]]]
language: list[MappingField[list[Language]]]
license: list[MappingField[License | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]
publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]
publicationYear: list[MappingField[Year | NoneType]]
publisher: list[MappingField[list[MergedOrganizationIdentifier]]]
repositoryURL: list[MappingField[Link | NoneType]]
section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]
subtitle: list[MappingField[list[Text]]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
titleOfBook: list[MappingField[list[Text]]]
titleOfSeries: list[MappingField[list[Text]]]
volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetRequest(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource'), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetRequest'] = 'BibliographicResourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a bibliographic resource item.

entityType: Annotated[Literal['BibliographicResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetResponse(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource'), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetResponse'] = 'BibliographicResourceRuleSetResponse', stableTargetId: MergedBibliographicResourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a bibliographic resource item.

entityType: Annotated[Literal['BibliographicResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedBibliographicResourceIdentifier
class mex.common.models.bibliographic_resource.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')

Bases: BaseBibliographicResource, ExtractedData

An automatically extracted metadata item describing a bibliographic resource.

entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedBibliographicResourceIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.bibliographic_resource.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: BaseBibliographicResource, MergedItem

The result of merging all extracted items and rules for a bibliographic resource.

entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged bibliographic resource items.

abstract: list[MergedPrimarySourceIdentifier]
accessRestriction: list[MergedPrimarySourceIdentifier]
alternateIdentifier: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
bibliographicResourceType: list[MergedPrimarySourceIdentifier]
contributingUnit: list[MergedPrimarySourceIdentifier]
creator: list[MergedPrimarySourceIdentifier]
distribution: list[MergedPrimarySourceIdentifier]
doi: list[MergedPrimarySourceIdentifier]
edition: list[MergedPrimarySourceIdentifier]
editor: list[MergedPrimarySourceIdentifier]
editorOfSeries: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: list[MergedPrimarySourceIdentifier]
issue: list[MergedPrimarySourceIdentifier]
issued: list[MergedPrimarySourceIdentifier]
journal: list[MergedPrimarySourceIdentifier]
keyword: list[MergedPrimarySourceIdentifier]
language: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: list[MergedPrimarySourceIdentifier]
publicationPlace: list[MergedPrimarySourceIdentifier]
publicationYear: list[MergedPrimarySourceIdentifier]
publisher: list[MergedPrimarySourceIdentifier]
repositoryURL: list[MergedPrimarySourceIdentifier]
section: list[MergedPrimarySourceIdentifier]
subtitle: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
titleOfBook: list[MergedPrimarySourceIdentifier]
titleOfSeries: list[MergedPrimarySourceIdentifier]
volume: list[MergedPrimarySourceIdentifier]
volumeOfSeries: list[MergedPrimarySourceIdentifier]
class mex.common.models.bibliographic_resource.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a bibliographic resource.

entityType: Annotated[Literal['PreviewBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.bibliographic_resource.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged bibliographic resource items.

entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.consent module

class mex.common.models.consent.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')

Bases: _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged consent items.

entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)

Bases: _OptionalValues, _RequiredValues

All fields for a valid consent except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for consent items.

entityType: Annotated[Literal['ConsentFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.ConsentMapping(*, entityType: Literal['ConsentMapping'] = 'ConsentMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a consent transformation.

entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasConsentType: list[MappingField[ConsentType | NoneType]]
hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a consent item.

entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a consent item.

entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedConsentIdentifier
class mex.common.models.consent.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')

Bases: BaseConsent, ExtractedData

An automatically extracted metadata set describing a consent.

entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedConsentIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.consent.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)

Bases: BaseConsent, MergedItem

The result of merging all extracted items and rules for a consent.

entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged consent items.

entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: list[MergedPrimarySourceIdentifier]
hasConsentType: list[MergedPrimarySourceIdentifier]
hasDataSubject: list[MergedPrimarySourceIdentifier]
isIndicatedAtTime: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier)

Bases: _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a consent.

entityType: Annotated[Literal['PreviewConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.consent.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')

Bases: _VariadicValues, SubtractiveRule

Rule to subtract values from merged consent items.

entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.contact_point module

class mex.common.models.contact_point.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged contact point items.

entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.BaseContactPoint(*, email: MinLen(min_length=1)])

Bases: _RequiredLists

All fields for a valid contact point except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for contact point items.

entityType: Annotated[Literal['ContactPointFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.ContactPointMapping(*, entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], email: MinLen(min_length=1)])

Bases: _Stem, BaseMapping

Mapping for describing a contact point transformation.

email: [^@ \\t\\r\\n]+$')])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
entityType: Annotated[Literal['ContactPointMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a contact point item.

entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a contact point item.

entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedContactPointIdentifier
class mex.common.models.contact_point.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')

Bases: BaseContactPoint, ExtractedData

An automatically extracted metadata set describing a contact point.

entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedContactPointIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.contact_point.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)

Bases: BaseContactPoint, MergedItem

The result of merging all extracted items and rules for a contact point.

entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged contact point items.

email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier)

Bases: _SparseLists, PreviewItem

Preview for merging all extracted items and rules for a contact point.

entityType: Annotated[Literal['PreviewContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.contact_point.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged contact point items.

entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.distribution module

class mex.common.models.distribution.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged distribution items.

entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid distribution except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for distribution items.

entityType: Annotated[Literal['DistributionFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.DistributionMapping(*, entityType: Literal['DistributionMapping'] = 'DistributionMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a distribution transformation.

accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]]
accessURL: list[MappingField[list[Link]]]
downloadURL: list[MappingField[list[Link]]]
entityType: Annotated[Literal['DistributionMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
license: list[MappingField[License | NoneType]]
mediaType: list[MappingField[MIMEType | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
class mex.common.models.distribution.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a distribution item.

entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a distribution item.

entityType: Annotated[Literal['DistributionRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedAccessPlatformIdentifier
class mex.common.models.distribution.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')

Bases: BaseDistribution, ExtractedData

An automatically extracted metadata set describing a distribution.

entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedDistributionIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.distribution.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)

Bases: BaseDistribution, MergedItem

The result of merging all extracted items and rules for a distribution.

entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged distribution items.

accessRestriction: list[MergedPrimarySourceIdentifier]
accessService: list[MergedPrimarySourceIdentifier]
accessURL: list[MergedPrimarySourceIdentifier]
downloadURL: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
mediaType: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
class mex.common.models.distribution.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a distribution.

entityType: Annotated[Literal['PreviewDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.distribution.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged distribution items.

entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.organization module

class mex.common.models.organization.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged organization items.

entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid organization except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')

Bases: BaseOrganization, ExtractedData

An automatically extracted metadata set describing an organization.

entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedOrganizationIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.organization.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)

Bases: BaseOrganization, MergedItem

The result of merging all extracted items and rules for an organization.

entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for organization items.

entityType: Annotated[Literal['OrganizationFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.OrganizationMapping(*, entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an organization transformation.

alternativeName: list[MappingField[list[Text]]]
entityType: Annotated[Literal['OrganizationMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]]
gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]
shortName: list[MappingField[list[Text]]]
viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]
wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]
class mex.common.models.organization.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an organization item.

entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organization item.

entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedOrganizationIdentifier
class mex.common.models.organization.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged organization items.

alternativeName: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[MergedPrimarySourceIdentifier]
gndId: list[MergedPrimarySourceIdentifier]
isniId: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: list[MergedPrimarySourceIdentifier]
rorId: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
viafId: list[MergedPrimarySourceIdentifier]
wikidataId: list[MergedPrimarySourceIdentifier]
class mex.common.models.organization.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier)

Bases: _OptionalLists, _SparseLists, PreviewItem

Preview for merging all extracted items and rules for an organization.

entityType: Annotated[Literal['PreviewOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organization.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged organization items.

entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.organizational_unit module

class mex.common.models.organizational_unit.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged organizational units.

entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid organizational unit except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')

Bases: BaseOrganizationalUnit, ExtractedData

An automatically extracted metadata set describing an organizational unit.

entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedOrganizationalUnitIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.organizational_unit.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: BaseOrganizationalUnit, MergedItem

The result of merging all extracted items and rules for an organizational unit.

entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for organizational unit items.

entityType: Annotated[Literal['OrganizationalUnitFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.OrganizationalUnitMapping(*, entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an organizational unit transformation.

alternativeName: list[MappingField[list[Text]]]
email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]
entityType: Annotated[Literal['OrganizationalUnitMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]
shortName: list[MappingField[list[Text]]]
unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]
website: list[MappingField[list[Link]]]
class mex.common.models.organizational_unit.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an organizational unit item.

entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organizational unit item.

entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedOrganizationalUnitIdentifier
class mex.common.models.organizational_unit.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged organizational units.

alternativeName: list[MergedPrimarySourceIdentifier]
email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: list[MergedPrimarySourceIdentifier]
parentUnit: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
unitOf: list[MergedPrimarySourceIdentifier]
website: list[MergedPrimarySourceIdentifier]
class mex.common.models.organizational_unit.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for an organizational unit.

entityType: Annotated[Literal['PreviewOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.organizational_unit.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged organizational units.

entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.person module

class mex.common.models.person.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')

Bases: _OptionalLists, AdditiveRule

Rule to add values to merged person items.

entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])

Bases: _OptionalLists

All fields for a valid person except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')

Bases: BasePerson, ExtractedData

An automatically extracted metadata set describing a person.

entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedPersonIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.person.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)

Bases: BasePerson, MergedItem

The result of merging all extracted items and rules for a person.

entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for person items.

entityType: Annotated[Literal['PersonFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.PersonMapping(*, entityType: Literal['PersonMapping'] = 'PersonMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a person transformation.

affiliation: list[MappingField[list[MergedOrganizationIdentifier]]]
email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]
entityType: Annotated[Literal['PersonMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]]
fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]]
givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]
memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]
class mex.common.models.person.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a person item.

entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a person item.

entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedPersonIdentifier
class mex.common.models.person.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged person items.

affiliation: list[MergedPrimarySourceIdentifier]
email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[MergedPrimarySourceIdentifier]
fullName: list[MergedPrimarySourceIdentifier]
givenName: list[MergedPrimarySourceIdentifier]
isniId: list[MergedPrimarySourceIdentifier]
memberOf: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: list[MergedPrimarySourceIdentifier]
class mex.common.models.person.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier)

Bases: _OptionalLists, PreviewItem

Preview for merging all extracted items and rules for a person.

entityType: Annotated[Literal['PreviewPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.person.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')

Bases: _OptionalLists, SubtractiveRule

Rule to subtract values from merged person items.

entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.primary_source module

class mex.common.models.primary_source.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')

Bases: _OptionalLists, _OptionalValues, AdditiveRule

Rule to add values to merged primary source items.

entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])

Bases: _OptionalLists, _OptionalValues

All fields for a valid primary source except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')

Bases: BasePrimarySource, ExtractedData

An automatically extracted metadata set describing a primary source.

entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedPrimarySourceIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.primary_source.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)

Bases: BasePrimarySource, MergedItem

The result of merging all extracted items and rules for a primary source.

entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged primary source items.

alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
version: list[MergedPrimarySourceIdentifier]
class mex.common.models.primary_source.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier)

Bases: _OptionalLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for a primary source.

entityType: Annotated[Literal['PreviewPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for primary source items.

entityType: Annotated[Literal['PrimarySourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.PrimarySourceMapping(*, entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a primary source transformation.

alternativeTitle: list[MappingField[list[Text]]]
contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]
description: list[MappingField[list[Text]]]
documentation: list[MappingField[list[Link]]]
entityType: Annotated[Literal['PrimarySourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
locatedAt: list[MappingField[list[Link]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: list[MappingField[list[Text]]]
unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]
class mex.common.models.primary_source.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a primary source item.

entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.primary_source.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a primary source item.

entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedPrimarySourceIdentifier
class mex.common.models.primary_source.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged primary source items.

entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.resource module

class mex.common.models.resource.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged resource items.

entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid resource except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')

Bases: BaseResource, ExtractedData

An automatically extracted metadata set describing a resource.

entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedResourceIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.resource.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)

Bases: BaseResource, MergedItem

The result of merging all extracted items and rules for a resource.

entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPurpose: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], provenance: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged resource items.

accessPlatform: list[MergedPrimarySourceIdentifier]
accessRestriction: list[MergedPrimarySourceIdentifier]
accrualPeriodicity: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]
conformsTo: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
contributingUnit: list[MergedPrimarySourceIdentifier]
contributor: list[MergedPrimarySourceIdentifier]
created: list[MergedPrimarySourceIdentifier]
creator: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
distribution: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
doi: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedPrimarySourceIdentifier]
hasLegalBasis: list[MergedPrimarySourceIdentifier]
hasPersonalData: list[MergedPrimarySourceIdentifier]
hasPurpose: list[MergedPrimarySourceIdentifier]
icd10code: list[MergedPrimarySourceIdentifier]
instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]
isPartOf: list[MergedPrimarySourceIdentifier]
keyword: list[MergedPrimarySourceIdentifier]
language: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
loincId: list[MergedPrimarySourceIdentifier]
maxTypicalAge: list[MergedPrimarySourceIdentifier]
meshId: list[MergedPrimarySourceIdentifier]
method: list[MergedPrimarySourceIdentifier]
methodDescription: list[MergedPrimarySourceIdentifier]
minTypicalAge: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MergedPrimarySourceIdentifier]
populationCoverage: list[MergedPrimarySourceIdentifier]
provenance: list[MergedPrimarySourceIdentifier]
publication: list[MergedPrimarySourceIdentifier]
publisher: list[MergedPrimarySourceIdentifier]
qualityInformation: list[MergedPrimarySourceIdentifier]
resourceCreationMethod: list[MergedPrimarySourceIdentifier]
resourceTypeGeneral: list[MergedPrimarySourceIdentifier]
resourceTypeSpecific: list[MergedPrimarySourceIdentifier]
rights: list[MergedPrimarySourceIdentifier]
sizeOfDataBasis: list[MergedPrimarySourceIdentifier]
spatial: list[MergedPrimarySourceIdentifier]
stateOfDataProcessing: list[MergedPrimarySourceIdentifier]
temporal: list[MergedPrimarySourceIdentifier]
theme: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
wasGeneratedBy: list[MergedPrimarySourceIdentifier]
class mex.common.models.resource.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a resource.

entityType: Annotated[Literal['PreviewResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for resource items.

entityType: Annotated[Literal['ResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.ResourceMapping(*, entityType: Literal['ResourceMapping'] = 'ResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a resource transformation.

accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]]
accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
accrualPeriodicity: list[MappingField[Frequency | NoneType]]
alternativeTitle: list[MappingField[list[Text]]]
anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]]
conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]]
contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
contributor: list[MappingField[list[MergedPersonIdentifier]]]
created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
creator: list[MappingField[list[MergedPersonIdentifier]]]
description: list[MappingField[list[Text]]]
distribution: list[MappingField[list[MergedDistributionIdentifier]]]
documentation: list[MappingField[list[Link]]]
doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]
entityType: Annotated[Literal['ResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasLegalBasis: list[MappingField[list[Text]]]
hasPersonalData: list[MappingField[PersonalData | NoneType]]
hasPurpose: list[MappingField[list[Text]]]
icd10code: list[MappingField[list[str]]]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
instrumentToolOrApparatus: list[MappingField[list[Text]]]
isPartOf: list[MappingField[list[MergedResourceIdentifier]]]
keyword: list[MappingField[list[Text]]]
language: list[MappingField[list[Language]]]
license: list[MappingField[License | NoneType]]
loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]
maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]
meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]
method: list[MappingField[list[Text]]]
methodDescription: list[MappingField[list[Text]]]
minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
populationCoverage: list[MappingField[list[Text]]]
provenance: list[MappingField[list[Text]]]
publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]
publisher: list[MappingField[list[MergedOrganizationIdentifier]]]
qualityInformation: list[MappingField[list[Text]]]
resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]
resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]
resourceTypeSpecific: list[MappingField[list[Text]]]
rights: list[MappingField[list[Text]]]
sizeOfDataBasis: list[MappingField[str | NoneType]]
spatial: list[MappingField[list[Text]]]
stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]
temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]
theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]
class mex.common.models.resource.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a resource item.

entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.resource.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a resource item.

entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedResourceIdentifier
class mex.common.models.resource.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged resource items.

entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

mex.common.models.variable module

class mex.common.models.variable.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged variable items.

entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid variable except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')

Bases: BaseVariable, ExtractedData

An automatically extracted metadata set describing a variable.

entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedVariableIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.variable.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)

Bases: BaseVariable, MergedItem

The result of merging all extracted items and rules for a variable.

entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged variable items.

belongsTo: list[MergedPrimarySourceIdentifier]
codingSystem: list[MergedPrimarySourceIdentifier]
dataType: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: list[MergedPrimarySourceIdentifier]
valueSet: list[MergedPrimarySourceIdentifier]
class mex.common.models.variable.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for a variable.

entityType: Annotated[Literal['PreviewVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged variable items.

entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.VariableFilter(*, entityType: Literal['VariableFilter'] = 'VariableFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for variable items.

entityType: Annotated[Literal['VariableFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.VariableMapping(*, entityType: Literal['VariableMapping'] = 'VariableMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a variable transformation.

belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]]
codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]]
dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]]
description: list[MappingField[list[Text]]]
entityType: Annotated[Literal['VariableMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]
class mex.common.models.variable.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a variable item.

entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a variable item.

entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedVariableIdentifier

mex.common.models.variable_group module

class mex.common.models.variable_group.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged variable group items.

entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])

Bases: _RequiredLists

All fields for a valid variable group except for provenance.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')

Bases: BaseVariableGroup, ExtractedData

An automatically extracted metadata set describing a variable group.

entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedVariableGroupIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.variable_group.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)

Bases: BaseVariableGroup, MergedItem

The result of merging all extracted items and rules for a variable group.

entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged variable group items.

containedBy: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier)

Bases: _SparseLists, PreviewItem

Preview for merging all extracted items and rules for a variable group.

entityType: Annotated[Literal['PreviewVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged variable group items.

entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.VariableGroupFilter(*, entityType: Literal['VariableGroupFilter'] = 'VariableGroupFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for variable group items.

entityType: Annotated[Literal['VariableGroupFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.VariableGroupMapping(*, entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])

Bases: _Stem, BaseMapping

Mapping for describing a variable group transformation.

containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
entityType: Annotated[Literal['VariableGroupMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a variable group item.

entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.variable_group.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a variable group item.

entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

stableTargetId: MergedVariableGroupIdentifier

Module contents

These models implement the types defined by the mex-model in their various stages.

The current set of entity types includes:

  • AccessPlatform

  • Activity

  • BibliographicResource

  • Consent

  • ContactPoint

  • Distribution

  • Organization

  • OrganizationalUnit

  • Person

  • PrimarySource

  • Resource

  • Variable

  • VariableGroup

Each entity type T is modelled for the following use cases:

  • BaseT defines all fields according to mex-model except for provenance fields

  • ExtractedT defines an automatically extracted metadata item including provenance

  • MergedT defines the result of merging extracted items and rules into a single item

  • PreviewT defines a preview of a merged item without enforcing cardinality validation

  • AdditiveT defines a rule to add values to specific fields of a merged item

  • SubtractiveT defines a rule to subtract (or block) specific values for specific fields from contributing to a merged item

  • PreventiveT defines a rule to prevent (or block) specific primary sources from contributing to specific fields of a merged item

  • TRuleSet classes are used for CRUD operations on a set of three rules

  • TFilter defines how an entity filter specification should look like

  • TMapping defines how a raw-data to extracted item mapping should look like

Since these models for different use cases have a lot of overlapping attributes, we use a number of intermediate private classes to compose the public classes:

  • _Stem defines a static class attribute stemType, e.g. Person or PrimarySource, which is added to all intermediate and exported classes

  • _OptionalLists defines all fields typed as lists with an arity of 0-n

  • _RequiredLists defines all fields typed as lists with an arity of 1-n

  • _SparseLists re-defines all fields from _RequiredLists with an arity of 0-n

  • _OptionalValues defines all fields with optional values (arity of 0-1)

  • _RequiredValues defines all fields with required values (arity of 1)

  • _SparseValues re-defines all fields from _RequiredValues with an arity of 0-1

  • _VariadicValues re-defines all fields from _OptionalValues and _RequiredValues as list fields with an arity of 0-n

  • _BaseRuleSet bundles the additive, subtractive and preventive rules for one type

These private classes are used to compose the public classes like so:

  • BaseT: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

  • ExtractedT: BaseT, ExtractedData

  • MergedT: BaseT, MergedItem

  • PreviewT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

  • AdditiveT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

  • SubtractiveT: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

  • PreventiveT: all fields from BaseT re-typed as MergedPrimarySourceIdentifier

  • TRuleSetRequest: bundle of all three rules for one type used to create new rules

  • TRuleSetResponse: bundle of all three rules for one type including a stableTargetId

  • TFilter: a single field containing a list of filter rule definitions

  • TMapping: all BaseT fields re-typed as lists of mapping fields with setValues type

All models intended for developer consumption have two main classifying class variables: The frozen entityType field is added to classes to help with assigning the correct class when reading raw JSON entities. Simple duck-typing would not work, because some entity-types have overlapping attributes, like Person.email and ContactPoint.email. See: https://docs.pydantic.dev/latest/concepts/fields/#discriminator The frozen stemType class variable is added to classes to help with knowing which special-use-case classes are meant for the same type of items. E.g. ExtractedPerson, MergedPerson and PreventivePerson all share the same stemType of “Person”.

In addition to the classes themselves, mex.common.models also exposes various lists of models, lookups by class name and typing for unions of models.

class mex.common.models.AccessPlatformFilter(*, entityType: Literal['AccessPlatformFilter'] = 'AccessPlatformFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for access platform items.

entityType: Annotated[Literal['AccessPlatformFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.AccessPlatformMapping(*, entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an access platform transformation.

alternativeTitle: list[MappingField[list[Text]]]
contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]
description: list[MappingField[list[Text]]]
endpointDescription: list[MappingField[Link | NoneType]]
endpointType: list[MappingField[APIType | NoneType]]
endpointURL: list[MappingField[Link | NoneType]]
entityType: Annotated[Literal['AccessPlatformMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
landingPage: list[MappingField[list[Link]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
title: list[MappingField[list[Text]]]
unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
class mex.common.models.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an access platform item.

additive: AdditiveAccessPlatform
entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveAccessPlatform
subtractive: SubtractiveAccessPlatform
class mex.common.models.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an access platform item.

additive: AdditiveAccessPlatform
entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveAccessPlatform
stableTargetId: MergedAccessPlatformIdentifier
subtractive: SubtractiveAccessPlatform
class mex.common.models.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for activity items.

entityType: Annotated[Literal['ActivityFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ActivityMapping(*, entityType: Literal['ActivityMapping'] = 'ActivityMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an activity transformation.

abstract: list[MappingField[list[Text]]]
activityType: list[MappingField[list[ActivityType]]]
alternativeTitle: list[MappingField[list[Text]]]
contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
documentation: list[MappingField[list[Link]]]
end: list[MappingField[list[YearMonthDay | YearMonth | Year]]]
entityType: Annotated[Literal['ActivityMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]]
funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]]
fundingProgram: list[MappingField[list[str]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]
involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]
responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
shortName: list[MappingField[list[Text]]]
start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]
succeeds: list[MappingField[list[MergedActivityIdentifier]]]
theme: list[MappingField[list[Theme]]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
website: list[MappingField[list[Link]]]
class mex.common.models.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an activity item.

additive: AdditiveActivity
entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveActivity
subtractive: SubtractiveActivity
class mex.common.models.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an activity item.

additive: AdditiveActivity
entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveActivity
stableTargetId: MergedActivityIdentifier
subtractive: SubtractiveActivity
class mex.common.models.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')

Bases: _OptionalLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged access platform items.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]
endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]
entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[TechnicalAccessibility | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged activity items.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: list[AnyContactIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: list[MergedOrganizationalUnitIdentifier]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: list[Text]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged bibliographic resource items.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: AccessRestriction | None
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: list[MergedPersonIdentifier]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: VolumeOrIssueStr | None
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: PagesStr | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: SectionStr | None
subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: list[Text]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')

Bases: _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged consent items.

entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: ConsentStatus | None
hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: MergedPersonIdentifier | None
isIndicatedAtTime: YearMonthDayTime | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged contact point items.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged distribution items.

accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged organization items.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged organizational units.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')

Bases: _OptionalLists, AdditiveRule

Rule to add values to merged person items.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
class mex.common.models.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')

Bases: _OptionalLists, _OptionalValues, AdditiveRule

Rule to add values to merged primary source items.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: VersionStr | None
class mex.common.models.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged resource items.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: DoiStr | None
entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: MaxTypicalAgeInt | None
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: MinTypicalAgeInt | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: str | None
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.AdditiveRule

Bases: BaseModel

Base rule to add values to merged items.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged variable items.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged variable group items.

containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])

Bases: _OptionalLists, _OptionalValues, _RequiredValues

All fields for a valid access platform except for provenance.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]
endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid activity except for provenance.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid bibliographic resource except for provenance.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: VolumeOrIssueStr | None
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: PagesStr | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: SectionStr | None
subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)

Bases: _OptionalValues, _RequiredValues

All fields for a valid consent except for provenance.

hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]
hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]
isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BaseContactPoint(*, email: MinLen(min_length=1)])

Bases: _RequiredLists

All fields for a valid contact point except for provenance.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid distribution except for provenance.

accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.BaseFilter

Bases: BaseModel

Base class for filter implementations.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BaseMapping

Bases: BaseModel

Base class for mapping implementations.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BaseModel

Bases: BaseModel

Common base class for all MEx model classes.

classmethod _convert_list_to_non_list(field_name: str, value: list[Any]) Any

Convert a list value to a non-list value by unpacking it if possible.

classmethod _convert_non_list_to_list(field_name: str, value: Any) list[Any] | None

Convert a non-list value to a list value by wrapping it in a list.

classmethod _fix_value_listyness_for_field(field_name: str, value: Any) Any

Check actual and desired shape of a value and fix it if necessary.

classmethod fix_listyness(data: Any, handler: ValidatorFunctionWrapHandler) Any

Adjust the listyness of to-be-parsed data to match the desired shape.

If that data is a Mapping and the model defines a list[T] field but the raw data contains just a value of type T, it will be wrapped into a list. If the raw data contains a literal None, but the list field is defined as required, we substitute an empty list.

If the model does not expect a list, but the raw data contains a list with no entries, it will be substituted with None. If the raw data contains exactly one entry, then it will be unpacked from the list. If it contains more than one entry however, an error is raised, because we would not know which to choose.

Parameters:
  • data – Raw data or instance to be parsed

  • handler – Validator function wrap handler

Returns:

data with fixed list shapes

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation', *, union_format: ~typing.Literal['any_of', 'primitive_type_array'] = 'any_of') dict[str, Any]

Generates a JSON schema for a model class.

Parameters:
  • by_alias – Whether to use attribute aliases or not.

  • ref_template – The reference template.

  • schema_generator – Overriding the logic used to generate the JSON schema

  • mode – The mode in which to generate the schema.

  • union_format – The format to use when combining schemas from unions together.

Returns:

The JSON schema for the given model class.

classmethod verify_computed_field_consistency(data: Any, handler: ValidatorFunctionWrapHandler) Any

Validate that parsed values for computed fields are consistent.

Parsing a dictionary with a value for a computed field that is consistent with what that field would have computed anyway is allowed. Omitting values for computed fields is perfectly valid as well. However, if the parsed value is different from the computed value, a validation error is raised.

Parameters:
  • data – Raw data or instance to be parsed

  • handler – Validator function wrap handler

Returns:

data with consistent computed fields.

class mex.common.models.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid organization except for provenance.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid organizational unit except for provenance.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])

Bases: _OptionalLists

All fields for a valid person except for provenance.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
class mex.common.models.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])

Bases: _OptionalLists, _OptionalValues

All fields for a valid primary source except for provenance.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: VersionStr | None
class mex.common.models.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid resource except for provenance.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: DoiStr | None
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: MaxTypicalAgeInt | None
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: MinTypicalAgeInt | None
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: str | None
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid variable except for provenance.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])

Bases: _RequiredLists

All fields for a valid variable group except for provenance.

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for bibliographic resource items.

entityType: Annotated[Literal['BibliographicResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.BibliographicResourceMapping(*, entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a bibliographic resource transformation.

abstract: list[MappingField[list[Text]]]
accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
alternateIdentifier: list[MappingField[list[str]]]
alternativeTitle: list[MappingField[list[Text]]]
bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]]
contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
distribution: list[MappingField[list[MergedDistributionIdentifier]]]
doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]
edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]]
editor: list[MappingField[list[MergedPersonIdentifier]]]
editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]]
entityType: Annotated[Literal['BibliographicResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]
issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
journal: list[MappingField[list[Text]]]
keyword: list[MappingField[list[Text]]]
language: list[MappingField[list[Language]]]
license: list[MappingField[License | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]
publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]
publicationYear: list[MappingField[Year | NoneType]]
publisher: list[MappingField[list[MergedOrganizationIdentifier]]]
repositoryURL: list[MappingField[Link | NoneType]]
section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]
subtitle: list[MappingField[list[Text]]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
titleOfBook: list[MappingField[list[Text]]]
titleOfSeries: list[MappingField[list[Text]]]
volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]
class mex.common.models.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for consent items.

entityType: Annotated[Literal['ConsentFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ConsentMapping(*, entityType: Literal['ConsentMapping'] = 'ConsentMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a consent transformation.

entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasConsentType: list[MappingField[ConsentType | NoneType]]
hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a consent item.

additive: AdditiveConsent
entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveConsent
subtractive: SubtractiveConsent
class mex.common.models.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a consent item.

additive: AdditiveConsent
entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveConsent
stableTargetId: MergedConsentIdentifier
subtractive: SubtractiveConsent
class mex.common.models.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for contact point items.

entityType: Annotated[Literal['ContactPointFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ContactPointMapping(*, entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], email: MinLen(min_length=1)])

Bases: _Stem, BaseMapping

Mapping for describing a contact point transformation.

email: [^@ \\t\\r\\n]+$')])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
entityType: Annotated[Literal['ContactPointMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a contact point item.

additive: AdditiveContactPoint
entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveContactPoint
subtractive: SubtractiveContactPoint
class mex.common.models.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a contact point item.

additive: AdditiveContactPoint
entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveContactPoint
stableTargetId: MergedContactPointIdentifier
subtractive: SubtractiveContactPoint
class mex.common.models.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for distribution items.

entityType: Annotated[Literal['DistributionFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.DistributionMapping(*, entityType: Literal['DistributionMapping'] = 'DistributionMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a distribution transformation.

accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]]
accessURL: list[MappingField[list[Link]]]
downloadURL: list[MappingField[list[Link]]]
entityType: Annotated[Literal['DistributionMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
license: list[MappingField[License | NoneType]]
mediaType: list[MappingField[MIMEType | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
class mex.common.models.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a distribution item.

additive: AdditiveDistribution
entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveDistribution
subtractive: SubtractiveDistribution
class mex.common.models.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a distribution item.

additive: AdditiveDistribution
entityType: Annotated[Literal['DistributionRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveDistribution
stableTargetId: MergedAccessPlatformIdentifier
subtractive: SubtractiveDistribution
class mex.common.models.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')

Bases: BaseAccessPlatform, ExtractedData

An automatically extracted metadata item describing an access platform.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]
endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]
entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedAccessPlatformIdentifier

Return the computed stableTargetId for this extracted item.

technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')

Bases: BaseActivity, ExtractedData

An automatically extracted metadata set describing an activity.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
property stableTargetId: MergedActivityIdentifier

Return the computed stableTargetId for this extracted item.

start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')

Bases: BaseBibliographicResource, ExtractedData

An automatically extracted metadata item describing a bibliographic resource.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: VolumeOrIssueStr | None
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: PagesStr | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: SectionStr | None
property stableTargetId: MergedBibliographicResourceIdentifier

Return the computed stableTargetId for this extracted item.

subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')

Bases: BaseConsent, ExtractedData

An automatically extracted metadata set describing a consent.

entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]
hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedConsentIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')

Bases: BaseContactPoint, ExtractedData

An automatically extracted metadata set describing a contact point.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]
entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedContactPointIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.ExtractedData(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])

Bases: BaseModel

Base model for all extracted item classes.

This class adds two important attributes for metadata provenance: hadPrimarySource and identifierInPrimarySource, which are used to uniquely identify an item in its original primary source. The attribute stableTargetId has to be set by each concrete subclass, like ExtractedPerson, because it needs to have the correct type, e.g. MergedPersonIdentifier.

This class also adds a validator to automatically set identifiers for provenance.

_get_identifier(identifier_type: type[_ExtractedIdentifierT]) _ExtractedIdentifierT

Consult the identity provider to get the identifier for this item.

Parameters:

identifier_type – ExtractedIdentifier-subclass to cast the identifier to

Returns:

Identifier of the correct type

_get_stable_target_id(identifier_type: type[_MergedIdentifierT]) _MergedIdentifierT

Consult the identity provider to get the stableTargetId for this item.

Parameters:

identifier_type – MergedIdentifier-subclass to cast the identifier to

Returns:

StableTargetId of the correct type

hadPrimarySource: org/ns/prov#hadPrimarySource']}, frozen=True)]
identifierInPrimarySource: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')

Bases: BaseDistribution, ExtractedData

An automatically extracted metadata set describing a distribution.

accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
property stableTargetId: MergedDistributionIdentifier

Return the computed stableTargetId for this extracted item.

title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')

Bases: BaseOrganization, ExtractedData

An automatically extracted metadata set describing an organization.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
property stableTargetId: MergedOrganizationIdentifier

Return the computed stableTargetId for this extracted item.

viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')

Bases: BaseOrganizationalUnit, ExtractedData

An automatically extracted metadata set describing an organizational unit.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
property stableTargetId: MergedOrganizationalUnitIdentifier

Return the computed stableTargetId for this extracted item.

unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')

Bases: BasePerson, ExtractedData

An automatically extracted metadata set describing a person.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
property stableTargetId: MergedPersonIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')

Bases: BasePrimarySource, ExtractedData

An automatically extracted metadata set describing a primary source.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedPrimarySourceIdentifier

Return the computed stableTargetId for this extracted item.

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: VersionStr | None
class mex.common.models.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')

Bases: BaseResource, ExtractedData

An automatically extracted metadata set describing a resource.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: DoiStr | None
entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hadPrimarySource: HadPrimarySource
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: MaxTypicalAgeInt | None
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: MinTypicalAgeInt | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: str | None
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
property stableTargetId: MergedResourceIdentifier

Return the computed stableTargetId for this extracted item.

stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')

Bases: BaseVariable, ExtractedData

An automatically extracted metadata set describing a variable.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedVariableIdentifier

Return the computed stableTargetId for this extracted item.

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')

Bases: BaseVariableGroup, ExtractedData

An automatically extracted metadata set describing a variable group.

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: HadPrimarySource
property identifier: 1/identifier']})]

Return the computed identifier for this extracted item.

identifierInPrimarySource: IdentifierInPrimarySource
label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property stableTargetId: MergedVariableGroupIdentifier

Return the computed stableTargetId for this extracted item.

class mex.common.models.FilterField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, filterRules: Annotated[list[FilterRule], MinLen(min_length=1)], comment: str | None = None)

Bases: BaseModel

Filter definition for one field in the primary source.

comment: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='comment')]
examplesInPrimarySource: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='examplesInPrimarySource')]
fieldInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='fieldInPrimarySource')]
filterRules: Annotated[list[FilterRule], FieldInfo(annotation=NoneType, required=True, title='filterRules', metadata=[MinLen(min_length=1)])]
locationInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='locationInPrimarySource')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.FilterRule(*, forValues: list[str] | None = None, rule: str | None = None)

Bases: BaseModel

A single filter rule to apply.

forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]
class mex.common.models.ItemsContainer(*, items: list[_ContainerItemT])

Bases: BaseModel, Generic[_ContainerItemT]

Generic container that contains items.

items: list[_ContainerItemT]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.MappingField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, mappingRules: Annotated[list[MappingRule[_MappingRuleT]], MinLen(min_length=1)], comment: str | None = None)

Bases: BaseModel, Generic[_MappingRuleT]

Generic mapping field model.

comment: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='comment')]
examplesInPrimarySource: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='examplesInPrimarySource')]
fieldInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='fieldInPrimarySource')]
locationInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='locationInPrimarySource')]
mappingRules: Annotated[list[MappingRule[_MappingRuleT]], FieldInfo(annotation=NoneType, required=True, title='mappingRules', metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.MappingRule(*, forValues: list[str] | None = None, setValues: _ValueT | None = None, rule: str | None = None)

Bases: BaseModel, Generic[_ValueT]

Generic mapping rule model.

forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]
setValues: Annotated[_ValueT | None, FieldInfo(annotation=NoneType, required=True, title='setValues')]
class mex.common.models.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)

Bases: BaseAccessPlatform, MergedItem

The result of merging all extracted items and rules for an access platform.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]
endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]
entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)

Bases: BaseActivity, MergedItem

The result of merging all extracted items and rules for an activity.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law.  Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: BaseBibliographicResource, MergedItem

The result of merging all extracted items and rules for a bibliographic resource.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: VolumeOrIssueStr | None
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: PagesStr | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: SectionStr | None
subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)

Bases: BaseConsent, MergedItem

The result of merging all extracted items and rules for a consent.

entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]
hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)

Bases: BaseContactPoint, MergedItem

The result of merging all extracted items and rules for a contact point.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]
entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)

Bases: BaseDistribution, MergedItem

The result of merging all extracted items and rules for a distribution.

accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.MergedItem

Bases: BaseModel

Base model for all merged item classes.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)

Bases: BaseOrganization, MergedItem

The result of merging all extracted items and rules for an organization.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: BaseOrganizationalUnit, MergedItem

The result of merging all extracted items and rules for an organizational unit.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)

Bases: BasePerson, MergedItem

The result of merging all extracted items and rules for a person.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
class mex.common.models.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)

Bases: BasePrimarySource, MergedItem

The result of merging all extracted items and rules for a primary source.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: VersionStr | None
class mex.common.models.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)

Bases: BaseResource, MergedItem

The result of merging all extracted items and rules for a resource.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: DoiStr | None
entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: MaxTypicalAgeInt | None
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: MinTypicalAgeInt | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: str | None
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)

Bases: BaseVariable, MergedItem

The result of merging all extracted items and rules for a variable.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)

Bases: BaseVariableGroup, MergedItem

The result of merging all extracted items and rules for a variable group.

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for organization items.

entityType: Annotated[Literal['OrganizationFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.OrganizationMapping(*, entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an organization transformation.

alternativeName: list[MappingField[list[Text]]]
entityType: Annotated[Literal['OrganizationMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]]
gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]
shortName: list[MappingField[list[Text]]]
viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]
wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]
class mex.common.models.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an organization item.

additive: AdditiveOrganization
entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveOrganization
subtractive: SubtractiveOrganization
class mex.common.models.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organization item.

additive: AdditiveOrganization
entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveOrganization
stableTargetId: MergedOrganizationIdentifier
subtractive: SubtractiveOrganization
class mex.common.models.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for organizational unit items.

entityType: Annotated[Literal['OrganizationalUnitFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.OrganizationalUnitMapping(*, entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing an organizational unit transformation.

alternativeName: list[MappingField[list[Text]]]
email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]
entityType: Annotated[Literal['OrganizationalUnitMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]
shortName: list[MappingField[list[Text]]]
unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]
website: list[MappingField[list[Link]]]
class mex.common.models.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an organizational unit item.

additive: AdditiveOrganizationalUnit
entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveOrganizationalUnit
subtractive: SubtractiveOrganizationalUnit
class mex.common.models.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organizational unit item.

additive: AdditiveOrganizationalUnit
entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveOrganizationalUnit
stableTargetId: MergedOrganizationalUnitIdentifier
subtractive: SubtractiveOrganizationalUnit
class mex.common.models.PaginatedItemsContainer(*, items: list[_ContainerItemT], total: int)

Bases: BaseModel, Generic[_ContainerItemT]

Generic container that contains items and has a total item count.

items: list[_ContainerItemT]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

total: int
class mex.common.models.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for person items.

entityType: Annotated[Literal['PersonFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PersonMapping(*, entityType: Literal['PersonMapping'] = 'PersonMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a person transformation.

affiliation: list[MappingField[list[MergedOrganizationIdentifier]]]
email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]
entityType: Annotated[Literal['PersonMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]]
fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]]
givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]
memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]
class mex.common.models.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a person item.

additive: AdditivePerson
entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventivePerson
subtractive: SubtractivePerson
class mex.common.models.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a person item.

additive: AdditivePerson
entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventivePerson
stableTargetId: MergedPersonIdentifier
subtractive: SubtractivePerson
class mex.common.models.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged access platform items.

alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
endpointDescription: list[MergedPrimarySourceIdentifier]
endpointType: list[MergedPrimarySourceIdentifier]
endpointURL: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged activity items.

abstract: list[MergedPrimarySourceIdentifier]
activityType: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
end: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[MergedPrimarySourceIdentifier]
funderOrCommissioner: list[MergedPrimarySourceIdentifier]
fundingProgram: list[MergedPrimarySourceIdentifier]
involvedPerson: list[MergedPrimarySourceIdentifier]
involvedUnit: list[MergedPrimarySourceIdentifier]
isPartOfActivity: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: list[MergedPrimarySourceIdentifier]
responsibleUnit: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
start: list[MergedPrimarySourceIdentifier]
succeeds: list[MergedPrimarySourceIdentifier]
theme: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
website: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged bibliographic resource items.

abstract: list[MergedPrimarySourceIdentifier]
accessRestriction: list[MergedPrimarySourceIdentifier]
alternateIdentifier: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
bibliographicResourceType: list[MergedPrimarySourceIdentifier]
contributingUnit: list[MergedPrimarySourceIdentifier]
creator: list[MergedPrimarySourceIdentifier]
distribution: list[MergedPrimarySourceIdentifier]
doi: list[MergedPrimarySourceIdentifier]
edition: list[MergedPrimarySourceIdentifier]
editor: list[MergedPrimarySourceIdentifier]
editorOfSeries: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: list[MergedPrimarySourceIdentifier]
issue: list[MergedPrimarySourceIdentifier]
issued: list[MergedPrimarySourceIdentifier]
journal: list[MergedPrimarySourceIdentifier]
keyword: list[MergedPrimarySourceIdentifier]
language: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: list[MergedPrimarySourceIdentifier]
publicationPlace: list[MergedPrimarySourceIdentifier]
publicationYear: list[MergedPrimarySourceIdentifier]
publisher: list[MergedPrimarySourceIdentifier]
repositoryURL: list[MergedPrimarySourceIdentifier]
section: list[MergedPrimarySourceIdentifier]
subtitle: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
titleOfBook: list[MergedPrimarySourceIdentifier]
titleOfSeries: list[MergedPrimarySourceIdentifier]
volume: list[MergedPrimarySourceIdentifier]
volumeOfSeries: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged consent items.

entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: list[MergedPrimarySourceIdentifier]
hasConsentType: list[MergedPrimarySourceIdentifier]
hasDataSubject: list[MergedPrimarySourceIdentifier]
isIndicatedAtTime: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged contact point items.

email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged distribution items.

accessRestriction: list[MergedPrimarySourceIdentifier]
accessService: list[MergedPrimarySourceIdentifier]
accessURL: list[MergedPrimarySourceIdentifier]
downloadURL: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
mediaType: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged organization items.

alternativeName: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[MergedPrimarySourceIdentifier]
gndId: list[MergedPrimarySourceIdentifier]
isniId: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: list[MergedPrimarySourceIdentifier]
rorId: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
viafId: list[MergedPrimarySourceIdentifier]
wikidataId: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged organizational units.

alternativeName: list[MergedPrimarySourceIdentifier]
email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: list[MergedPrimarySourceIdentifier]
parentUnit: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
unitOf: list[MergedPrimarySourceIdentifier]
website: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged person items.

affiliation: list[MergedPrimarySourceIdentifier]
email: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[MergedPrimarySourceIdentifier]
fullName: list[MergedPrimarySourceIdentifier]
givenName: list[MergedPrimarySourceIdentifier]
isniId: list[MergedPrimarySourceIdentifier]
memberOf: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged primary source items.

alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
version: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPurpose: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], provenance: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged resource items.

accessPlatform: list[MergedPrimarySourceIdentifier]
accessRestriction: list[MergedPrimarySourceIdentifier]
accrualPeriodicity: list[MergedPrimarySourceIdentifier]
alternativeTitle: list[MergedPrimarySourceIdentifier]
anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]
conformsTo: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
contributingUnit: list[MergedPrimarySourceIdentifier]
contributor: list[MergedPrimarySourceIdentifier]
created: list[MergedPrimarySourceIdentifier]
creator: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
distribution: list[MergedPrimarySourceIdentifier]
documentation: list[MergedPrimarySourceIdentifier]
doi: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedPrimarySourceIdentifier]
hasLegalBasis: list[MergedPrimarySourceIdentifier]
hasPersonalData: list[MergedPrimarySourceIdentifier]
hasPurpose: list[MergedPrimarySourceIdentifier]
icd10code: list[MergedPrimarySourceIdentifier]
instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]
isPartOf: list[MergedPrimarySourceIdentifier]
keyword: list[MergedPrimarySourceIdentifier]
language: list[MergedPrimarySourceIdentifier]
license: list[MergedPrimarySourceIdentifier]
loincId: list[MergedPrimarySourceIdentifier]
maxTypicalAge: list[MergedPrimarySourceIdentifier]
meshId: list[MergedPrimarySourceIdentifier]
method: list[MergedPrimarySourceIdentifier]
methodDescription: list[MergedPrimarySourceIdentifier]
minTypicalAge: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MergedPrimarySourceIdentifier]
populationCoverage: list[MergedPrimarySourceIdentifier]
provenance: list[MergedPrimarySourceIdentifier]
publication: list[MergedPrimarySourceIdentifier]
publisher: list[MergedPrimarySourceIdentifier]
qualityInformation: list[MergedPrimarySourceIdentifier]
resourceCreationMethod: list[MergedPrimarySourceIdentifier]
resourceTypeGeneral: list[MergedPrimarySourceIdentifier]
resourceTypeSpecific: list[MergedPrimarySourceIdentifier]
rights: list[MergedPrimarySourceIdentifier]
sizeOfDataBasis: list[MergedPrimarySourceIdentifier]
spatial: list[MergedPrimarySourceIdentifier]
stateOfDataProcessing: list[MergedPrimarySourceIdentifier]
temporal: list[MergedPrimarySourceIdentifier]
theme: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
wasGeneratedBy: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveRule

Bases: BaseModel

Base rule to prevent primary sources for fields of merged items.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged variable items.

belongsTo: list[MergedPrimarySourceIdentifier]
codingSystem: list[MergedPrimarySourceIdentifier]
dataType: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: list[MergedPrimarySourceIdentifier]
valueSet: list[MergedPrimarySourceIdentifier]
class mex.common.models.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])

Bases: _Stem, PreventiveRule

Rule to prevent primary sources for fields of merged variable group items.

containedBy: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[MergedPrimarySourceIdentifier]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier)

Bases: _OptionalLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for an access platform.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]
endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]
entityType: Annotated[Literal['PreviewAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[TechnicalAccessibility | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier)

Bases: _OptionalLists, _SparseLists, PreviewItem

Preview for merging all extracted items and rules for an activity.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: list[AnyContactIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
entityType: Annotated[Literal['PreviewActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: list[MergedOrganizationalUnitIdentifier]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: list[Text]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a bibliographic resource.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: AccessRestriction | None
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: list[MergedPersonIdentifier]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
entityType: Annotated[Literal['PreviewBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: VolumeOrIssueStr | None
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: PagesStr | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: SectionStr | None
subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: list[Text]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier)

Bases: _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a consent.

entityType: Annotated[Literal['PreviewConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: ConsentStatus | None
hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: MergedPersonIdentifier | None
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isIndicatedAtTime: YearMonthDayTime | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier)

Bases: _SparseLists, PreviewItem

Preview for merging all extracted items and rules for a contact point.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['PreviewContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a distribution.

accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
entityType: Annotated[Literal['PreviewDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier)

Bases: _OptionalLists, _SparseLists, PreviewItem

Preview for merging all extracted items and rules for an organization.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
entityType: Annotated[Literal['PreviewOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for an organizational unit.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['PreviewOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier)

Bases: _OptionalLists, PreviewItem

Preview for merging all extracted items and rules for a person.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['PreviewPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
class mex.common.models.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier)

Bases: _OptionalLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for a primary source.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
entityType: Annotated[Literal['PreviewPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: VersionStr | None
class mex.common.models.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem

Preview for merging all extracted items and rules for a resource.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: DoiStr | None
entityType: Annotated[Literal['PreviewResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: MaxTypicalAgeInt | None
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: MinTypicalAgeInt | None
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: str | None
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier)

Bases: _OptionalLists, _SparseLists, _OptionalValues, PreviewItem

Preview for merging all extracted items and rules for a variable.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
entityType: Annotated[Literal['PreviewVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier)

Bases: _SparseLists, PreviewItem

Preview for merging all extracted items and rules for a variable group.

containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
entityType: Annotated[Literal['PreviewVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for primary source items.

entityType: Annotated[Literal['PrimarySourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.PrimarySourceMapping(*, entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a primary source transformation.

alternativeTitle: list[MappingField[list[Text]]]
contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]
description: list[MappingField[list[Text]]]
documentation: list[MappingField[list[Link]]]
entityType: Annotated[Literal['PrimarySourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
locatedAt: list[MappingField[list[Link]]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: list[MappingField[list[Text]]]
unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]
class mex.common.models.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a primary source item.

additive: AdditivePrimarySource
entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventivePrimarySource
subtractive: SubtractivePrimarySource
class mex.common.models.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a primary source item.

additive: AdditivePrimarySource
entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventivePrimarySource
stableTargetId: MergedPrimarySourceIdentifier
subtractive: SubtractivePrimarySource
class mex.common.models.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for resource items.

entityType: Annotated[Literal['ResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.ResourceMapping(*, entityType: Literal['ResourceMapping'] = 'ResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a resource transformation.

accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]]
accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
accrualPeriodicity: list[MappingField[Frequency | NoneType]]
alternativeTitle: list[MappingField[list[Text]]]
anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]]
conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]]
contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
contributor: list[MappingField[list[MergedPersonIdentifier]]]
created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
creator: list[MappingField[list[MergedPersonIdentifier]]]
description: list[MappingField[list[Text]]]
distribution: list[MappingField[list[MergedDistributionIdentifier]]]
documentation: list[MappingField[list[Link]]]
doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]
entityType: Annotated[Literal['ResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
hasLegalBasis: list[MappingField[list[Text]]]
hasPersonalData: list[MappingField[PersonalData | NoneType]]
hasPurpose: list[MappingField[list[Text]]]
icd10code: list[MappingField[list[str]]]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
instrumentToolOrApparatus: list[MappingField[list[Text]]]
isPartOf: list[MappingField[list[MergedResourceIdentifier]]]
keyword: list[MappingField[list[Text]]]
language: list[MappingField[list[Language]]]
license: list[MappingField[License | NoneType]]
loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]
maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]
meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]
method: list[MappingField[list[Text]]]
methodDescription: list[MappingField[list[Text]]]
minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]
populationCoverage: list[MappingField[list[Text]]]
provenance: list[MappingField[list[Text]]]
publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]
publisher: list[MappingField[list[MergedOrganizationIdentifier]]]
qualityInformation: list[MappingField[list[Text]]]
resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]
resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]
resourceTypeSpecific: list[MappingField[list[Text]]]
rights: list[MappingField[list[Text]]]
sizeOfDataBasis: list[MappingField[str | NoneType]]
spatial: list[MappingField[list[Text]]]
stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]
temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]
theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]
class mex.common.models.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a resource item.

additive: AdditiveResource
entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveResource
subtractive: SubtractiveResource
class mex.common.models.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a resource item.

additive: AdditiveResource
entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveResource
stableTargetId: MergedResourceIdentifier
subtractive: SubtractiveResource
class mex.common.models.Status(*, status: str)

Bases: BaseModel

Model for system status responses.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

status: str
class mex.common.models.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged access platform items.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
endpointDescription: list[Link]
endpointType: Annotated[list[APIType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
endpointURL: list[Link]
entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

technicalAccessibility: Annotated[list[TechnicalAccessibility], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
class mex.common.models.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged activity items.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: list[AnyContactIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]
entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]
fundingProgram: list[str]
involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
responsibleUnit: list[MergedOrganizationalUnitIdentifier]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]
succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: list[Text]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged bibliographic resource items.

abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]
accessRestriction: list[AccessRestriction]
alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
creator: list[MergedPersonIdentifier]
distribution: list[MergedDistributionIdentifier]
doi: list[DoiStr]
edition: list[EditionStr]
editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]
issue: list[VolumeOrIssueStr]
issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]
journal: list[Text]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: list[License]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pages: list[PagesStr]
publicationPlace: list[PublicationPlaceStr]
publicationYear: list[Year]
publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]
repositoryURL: list[Link]
section: list[SectionStr]
subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
title: list[Text]
titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]
volume: list[VolumeOrIssueStr]
volumeOfSeries: list[VolumeOrIssueStr]
class mex.common.models.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')

Bases: _VariadicValues, SubtractiveRule

Rule to subtract values from merged consent items.

entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: list[ConsentStatus]
hasConsentType: Annotated[list[ConsentType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
hasDataSubject: list[MergedPersonIdentifier]
isIndicatedAtTime: list[YearMonthDayTime]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged contact point items.

email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged distribution items.

accessRestriction: Annotated[list[AccessRestriction], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accessService: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]
downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]
entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]
license: Annotated[list[License], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
mediaType: Annotated[list[MIMEType], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
class mex.common.models.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged organization items.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]
gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]
rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]
wikidataId: list[WikidataIdStr]
class mex.common.models.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged organizational units.

alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]
parentUnit: list[MergedOrganizationalUnitIdentifier]
shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]
unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]
website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]
class mex.common.models.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')

Bases: _OptionalLists, SubtractiveRule

Rule to subtract values from merged person items.

affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]
email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]
entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]
fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]
givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]
isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]
memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]
class mex.common.models.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged primary source items.

alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[Link]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
version: list[VersionStr]
class mex.common.models.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged resource items.

accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]
accessRestriction: Annotated[list[AccessRestriction], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]
accrualPeriodicity: Annotated[list[Frequency], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]
alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]
contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]
contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]
created: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]
creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
distribution: list[MergedDistributionIdentifier]
documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]
doi: list[DoiStr]
entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]
hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]
hasPersonalData: Annotated[list[PersonalData], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]
hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]
keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]
language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]
license: Annotated[list[License], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]
loincId: list[LoincIdStr]
maxTypicalAge: list[MaxTypicalAgeInt]
meshId: list[MeshIdStr]
method: list[Text]
methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]
minTypicalAge: list[MinTypicalAgeInt]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modified: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]
populationCoverage: list[Text]
provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]
publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]
resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]
rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]
sizeOfDataBasis: list[str]
spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]
stateOfDataProcessing: list[DataProcessingState]
temporal: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]
theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]
title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]
wasGeneratedBy: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]
class mex.common.models.SubtractiveRule

Bases: BaseModel

Base rule to subtract values from merged items.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged variable items.

belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
codingSystem: Annotated[list[CodingSystemStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]
dataType: Annotated[list[DataTypeStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]
description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]
entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
valueSet: list[ValueSetStr]
class mex.common.models.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged variable group items.

containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]
entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.VariableFilter(*, entityType: Literal['VariableFilter'] = 'VariableFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for variable items.

entityType: Annotated[Literal['VariableFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.VariableGroupFilter(*, entityType: Literal['VariableGroupFilter'] = 'VariableGroupFilter', fields: list[FilterField] = [])

Bases: _Stem, BaseFilter

Class for defining filter rules for variable group items.

entityType: Annotated[Literal['VariableGroupFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.VariableGroupMapping(*, entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])

Bases: _Stem, BaseMapping

Mapping for describing a variable group transformation.

containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
entityType: Annotated[Literal['VariableGroupMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class mex.common.models.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a variable group item.

additive: AdditiveVariableGroup
entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveVariableGroup
subtractive: SubtractiveVariableGroup
class mex.common.models.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a variable group item.

additive: AdditiveVariableGroup
entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveVariableGroup
stableTargetId: MergedVariableGroupIdentifier
subtractive: SubtractiveVariableGroup
class mex.common.models.VariableMapping(*, entityType: Literal['VariableMapping'] = 'VariableMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])

Bases: _Stem, BaseMapping

Mapping for describing a variable transformation.

belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]]
codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]]
dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]]
description: list[MappingField[list[Text]]]
entityType: Annotated[Literal['VariableMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]
class mex.common.models.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a variable item.

additive: AdditiveVariable
entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveVariable
subtractive: SubtractiveVariable
class mex.common.models.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a variable item.

additive: AdditiveVariable
entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

preventive: PreventiveVariable
stableTargetId: MergedVariableIdentifier
subtractive: SubtractiveVariable
class mex.common.models.VersionStatus(*, status: str, version: str)

Bases: Status

Model for system status responses with a version.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

version: str