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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', 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)]
landingPage: list[MappingField[list[Link]]]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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', supersededBy: MergedAccessPlatformIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedAccessPlatformIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedAccessPlatformIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for an access platform item.

additive: AdditiveAccessPlatform
model_config = {'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

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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ActivityMapping'] = 'ActivityMapping', 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]]]
involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]
involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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', supersededBy: MergedActivityIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedActivityIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedActivityIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, 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', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for an activity item.

additive: AdditiveActivity
model_config = {'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

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', supersededBy: MergedBibliographicResourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', 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)]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedBibliographicResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedBibliographicResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, 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', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a bibliographic resource item.

additive: AdditiveBibliographicResource
model_config = {'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: PreventiveBibliographicResource
subtractive: SubtractiveBibliographicResource

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', supersededBy: MergedConsentIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ConsentMapping'] = 'ConsentMapping', 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)]
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)])]
isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
class mex.common.models.consent.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier, supersededBy: MergedConsentIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedConsentIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a consent item.

additive: AdditiveConsent
model_config = {'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

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', supersededBy: MergedContactPointIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', 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)]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
class mex.common.models.contact_point.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier, supersededBy: MergedContactPointIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedContactPointIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a contact point item.

additive: AdditiveContactPoint
model_config = {'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

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', supersededBy: MergedDistributionIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['DistributionMapping'] = 'DistributionMapping', 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)]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedDistributionIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedDistributionIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a distribution item.

additive: AdditiveDistribution
model_config = {'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

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', supersededBy: MergedOrganizationIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedOrganizationIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', 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}$')])]]]]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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 = {'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, supersededBy: MergedOrganizationIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for an organization item.

additive: AdditiveOrganization
model_config = {'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

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', supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', 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)]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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 = {'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, supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for an organizational unit item.

additive: AdditiveOrganizationalUnit
model_config = {'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

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', supersededBy: MergedPersonIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedPersonIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PersonMapping'] = 'PersonMapping', 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'])]]]]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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 = {'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, supersededBy: MergedPersonIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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._BaseRuleSet(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a person item.

additive: AdditivePerson
model_config = {'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

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', supersededBy: MergedPrimarySourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedPrimarySourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedPrimarySourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', 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)]
locatedAt: list[MappingField[list[Link]]]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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 = {'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._BaseRuleSet(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a primary source item.

additive: AdditivePrimarySource
model_config = {'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

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', supersededBy: MergedResourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ResourceMapping'] = 'ResourceMapping', 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]]]
hasLegalBasis: list[MappingField[list[Text]]]
hasPersonalData: list[MappingField[PersonalData | NoneType]]
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]]]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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 = {'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._BaseRuleSet(*, 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', supersededBy=None), 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=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a resource item.

additive: AdditiveResource
model_config = {'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

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[~typing.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', supersededBy: MergedVariableIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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 = {'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.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedVariableIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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[~typing.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, supersededBy: MergedVariableIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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[~typing.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 = {'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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableMapping'] = 'VariableMapping', 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)]
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 = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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
class mex.common.models.variable._BaseRuleSet(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a variable item.

additive: AdditiveVariable
model_config = {'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

mex.common.models.variable_group module

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

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 = {'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].

supersededBy: '})]
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 = {'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.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, supersededBy: MergedVariableGroupIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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, supersededBy: MergedVariableGroupIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', 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)]
label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config = {'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', supersededBy=None), 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 = {'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', supersededBy=None), 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 = {'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
class mex.common.models.variable_group._BaseRuleSet(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]))

Bases: _Stem, RuleSet

Base class for sets of rules for a variable group item.

additive: AdditiveVariableGroup
model_config = {'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

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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', 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)]
landingPage: list[MappingField[list[Link]]]
model_config = {'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', supersededBy=None), 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 = {'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.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), 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 = {'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.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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ActivityMapping'] = 'ActivityMapping', 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]]]
involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]
involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]
isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]
model_config = {'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', supersededBy=None), 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 = {'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.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', supersededBy=None), 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 = {'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.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', supersededBy: MergedAccessPlatformIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedActivityIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedBibliographicResourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedConsentIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedContactPointIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedDistributionIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedOrganizationIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedPersonIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedPrimarySourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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', supersededBy: MergedResourceIdentifier | None = None)

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 = {'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].

supersededBy: '})]
class mex.common.models.AdditiveRule

Bases: BaseModel

Base rule to add values to merged items.

model_config = {'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[~typing.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', supersededBy: MergedVariableIdentifier | None = None)

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 = {'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].

supersededBy: '})]
class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup', supersededBy: MergedVariableGroupIdentifier | None = None)

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 = {'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].

supersededBy: '})]
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.

model_config = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#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.

model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.

model_config = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.BaseFilter

Bases: BaseModel

Base class for filter implementations.

model_config = {'extra': 'forbid'}

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

class mex.common.models.BaseMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)])

Bases: BaseModel

Base class for mapping implementations.

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 = {'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 = {'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[GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: Literal['validation', 'serialization']='validation', *, union_format: 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.

model_config = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.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 = {'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.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', 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)]
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 = {'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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ConsentMapping'] = 'ConsentMapping', 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)]
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)])]
isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config = {'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', supersededBy=None), 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 = {'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.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), 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 = {'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.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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', 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)]
model_config = {'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', supersededBy=None), 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 = {'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.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), 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 = {'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.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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['DistributionMapping'] = 'DistributionMapping', 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)]
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 = {'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', supersededBy=None), 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 = {'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.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), 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 = {'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.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']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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)]
property identifier: 1/identifier']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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, description='The identifier of the item used in the primary source.', 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 = {'extra': 'forbid', 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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.

entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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.

entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
property identifier: 1/identifier']})]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]
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 = {'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 = {'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 = {}

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[TypeVar]], 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[TypeVar]], FieldInfo(annotation=NoneType, required=True, title='mappingRules', metadata=[MinLen(min_length=1)])]
model_config = {'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 = {'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, supersededBy: MergedAccessPlatformIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedActivityIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedBibliographicResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

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

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

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

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: 1/identifier']}, frozen=True)]
model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedDistributionIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
class mex.common.models.MergedItem

Bases: BaseModel

Base model for all merged item classes.

model_config = {'extra': 'forbid', 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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, supersededBy: MergedOrganizationIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedPersonIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedPrimarySourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedVariableIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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, supersededBy: MergedVariableGroupIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}

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

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', 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}$')])]]]]
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 = {'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', supersededBy=None), 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 = {'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.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), 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 = {'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.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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', 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)]
model_config = {'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', supersededBy=None), 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 = {'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.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), 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 = {'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.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 = {}

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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PersonMapping'] = 'PersonMapping', 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'])]]]]
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 = {'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', supersededBy=None), 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 = {'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.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), 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 = {'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.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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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 = {'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, supersededBy: MergedAccessPlatformIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedActivityIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedBibliographicResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedConsentIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedContactPointIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedDistributionIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedOrganizationIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedOrganizationalUnitIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedPersonIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedPrimarySourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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, supersededBy: MergedResourceIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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[~typing.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, supersededBy: MergedVariableIdentifier | None = None)

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: 1/identifier']}, frozen=True)]
model_config = {'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].

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

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: 1/identifier']}, frozen=True)]
model_config = {'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].

supersededBy: '})]
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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', 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)]
locatedAt: list[MappingField[list[Link]]]
model_config = {'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', supersededBy=None), 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 = {'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.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), 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 = {'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.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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ResourceMapping'] = 'ResourceMapping', 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]]]
hasLegalBasis: list[MappingField[list[Text]]]
hasPersonalData: list[MappingField[PersonalData | NoneType]]
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]]]
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 = {'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', supersededBy=None), 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 = {'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.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', supersededBy=None), 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 = {'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.Status(*, status: str)

Bases: BaseModel

Model for system status responses.

model_config = {}

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.

entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config = {'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.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 = {'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.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 = {'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.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 = {'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.

entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config = {'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.

entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_config = {'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.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 = {'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.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 = {'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.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 = {'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.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 = {'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.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 = {'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.SubtractiveRule

Bases: BaseModel

Base rule to subtract values from merged items.

model_config = {'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[~typing.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 = {'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.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 = {'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 = {'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 = {'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(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', 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)]
label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]
model_config = {'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', supersededBy=None), 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 = {'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.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), 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 = {'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
class mex.common.models.VariableMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableMapping'] = 'VariableMapping', 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)]
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 = {'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', supersededBy=None), 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 = {'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.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), 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 = {'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
class mex.common.models.VersionStatus(*, status: str, version: str)

Bases: Status

Model for system status responses with a version.

model_config = {}

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

version: str