mex.common.models package

Subpackages

Submodules

mex.common.models.access_platform module

A way of physically accessing the Resource for re-use.

class mex.common.models.access_platform.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetRequest'], required=False, default='AccessPlatformRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.access_platform.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetResponse'], required=False, default='AccessPlatformRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged access platform items.

entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveAccessPlatform'], required=False, default='AdditiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=Union[TechnicalAccessibility, NoneType], required=False, default=None), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedAccessPlatformIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedAccessPlatform'], required=False, default='ExtractedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedAccessPlatformIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseAccessPlatform, MergedItem

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

entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedAccessPlatform'], required=False, default='MergedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveAccessPlatform'], required=False, default='PreventiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

technicalAccessibility: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[Link], required=True), 'endpointType': FieldInfo(annotation=list[APIType], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveAccessPlatform'], required=False, default='SubtractiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[TechnicalAccessibility], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.activity module

The context a resource was generated in.

This may be a project, an area of work or an administrative procedure.

class mex.common.models.activity.ActivityRuleSetRequest(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetRequest'], required=False, default='ActivityRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.activity.ActivityRuleSetResponse(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetResponse'], required=False, default='ActivityRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'stableTargetId': FieldInfo(annotation=MergedActivityIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged activity items.

entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveActivity'], required=False, default='AdditiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedActivityIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedActivity'], required=False, default='ExtractedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedActivityIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseActivity, MergedItem

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

entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedActivity'], required=False, default='MergedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedActivityIdentifier, required=True, frozen=True), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'activityType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'end': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveActivity'], required=False, default='PreventiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'start': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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.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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveActivity'], required=False, default='SubtractiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.bibliographic_resource module

A book, article, or other documentary resource.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged bibliographic resource items.

entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveBibliographicResource'], required=False, default='AdditiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetRequest(*, additive: AdditiveBibliographicResource, subtractive: SubtractiveBibliographicResource, preventive: PreventiveBibliographicResource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveBibliographicResource, required=True), 'entityType': FieldInfo(annotation=Literal['BibliographicResourceRuleSetRequest'], required=False, default='BibliographicResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveBibliographicResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveBibliographicResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetResponse(*, additive: AdditiveBibliographicResource, subtractive: SubtractiveBibliographicResource, preventive: PreventiveBibliographicResource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveBibliographicResource, required=True), 'entityType': FieldInfo(annotation=Literal['BibliographicResourceRuleSetResponse'], required=False, default='BibliographicResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveBibliographicResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveBibliographicResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], 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: ExtractedBibliographicResourceIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedBibliographicResource'], required=False, default='ExtractedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedBibliographicResourceIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.bibliographic_resource.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: BaseBibliographicResource, MergedItem

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

entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedBibliographicResource'], required=False, default='MergedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'edition': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveBibliographicResource'], required=False, default='PreventiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issue': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'journal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'pages': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'section': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volume': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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.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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'edition': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveBibliographicResource'], required=False, default='SubtractiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'pages': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[Year], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'section': FieldInfo(annotation=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.'])]], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.consent module

A consent - for example, an interdepartmental project.

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

Bases: _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged consent items.

entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['AdditiveConsent'], required=False, default='AdditiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=Union[ConsentStatus, NoneType], required=False, default=None), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=Union[MergedPersonIdentifier, NoneType], required=False, default=None), 'isIndicatedAtTime': FieldInfo(annotation=Union[YearMonthDayTime, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.consent.ConsentRuleSetRequest(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetRequest'], required=False, default='ConsentRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.consent.ConsentRuleSetResponse(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetResponse'], required=False, default='ConsentRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'stableTargetId': FieldInfo(annotation=MergedConsentIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedConsentIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['ExtractedConsent'], required=False, default='ExtractedConsent', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedConsentIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseConsent, MergedItem

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

entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['MergedConsent'], required=False, default='MergedConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifier': FieldInfo(annotation=MergedConsentIdentifier, required=True, frozen=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['PreventiveConsent'], required=False, default='PreventiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['SubtractiveConsent'], required=False, default='SubtractiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[ConsentStatus], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[ConsentType], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[YearMonthDayTime], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.contact_point module

A contact point - for example, an interdepartmental project.

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

Bases: _SparseLists, AdditiveRule

Rule to add values to merged contact point items.

entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveContactPoint'], required=False, default='AdditiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _RequiredLists

All fields for a valid contact point except for provenance.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.contact_point.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetRequest'], required=False, default='ContactPointRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.contact_point.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetResponse'], required=False, default='ContactPointRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'stableTargetId': FieldInfo(annotation=MergedContactPointIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: Annotated[list[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: ExtractedContactPointIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedContactPoint'], required=False, default='ExtractedContactPoint', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedContactPointIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseContactPoint, MergedItem

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

entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedContactPoint'], required=False, default='MergedContactPoint', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedContactPointIdentifier, required=True, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveContactPoint'], required=False, default='PreventiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.contact_point.SubtractiveContactPoint(*, email: list[Email] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveContactPoint'], required=False, default='SubtractiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.distribution module

A specific representation of a dataset.

class mex.common.models.distribution.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])] | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')

Bases: _OptionalLists, _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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveDistribution'], required=False, default='AdditiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _OptionalValues, _RequiredValues

All fields for a valid distribution except for provenance.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.distribution.DistributionRuleSetRequest(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.distribution.DistributionRuleSetResponse(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a distribution item.

entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, 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: ExtractedDistributionIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedDistribution'], required=False, default='ExtractedDistribution', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedDistributionIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseDistribution, MergedItem

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

entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedDistribution'], required=False, default='MergedDistribution', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedDistributionIdentifier, required=True, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessService': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveDistribution'], required=False, default='PreventiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'mediaType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: list[MergedPrimarySourceIdentifier]
title: list[MergedPrimarySourceIdentifier]
class mex.common.models.distribution.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')

Bases: _OptionalLists, _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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveDistribution'], required=False, default='SubtractiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'title': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.organization module

Represents a collection of people organized together.

This can be any community or other social, commercial or political structure.

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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged organization items.

entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganization'], required=False, default='AdditiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid organization except for provenance.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://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: ExtractedOrganizationIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganization'], required=False, default='ExtractedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedOrganizationIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.organization.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)

Bases: BaseOrganization, MergedItem

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

entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganization'], required=False, default='MergedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedOrganizationIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.organization.OrganizationRuleSetRequest(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetRequest'], required=False, default='OrganizationRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.organization.OrganizationRuleSetResponse(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetResponse'], required=False, default='OrganizationRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganization'], required=False, default='PreventiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'gndId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'officialName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rorId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'viafId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: list[MergedPrimarySourceIdentifier]
rorId: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
viafId: list[MergedPrimarySourceIdentifier]
wikidataId: list[MergedPrimarySourceIdentifier]
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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganization'], required=False, default='SubtractiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.organizational_unit module

An organizational unit which is part of some larger organization.

class mex.common.models.organizational_unit.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged organizational units.

entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganizationalUnit'], required=False, default='AdditiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.organizational_unit.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid organizational unit except for provenance.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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[Email] = [], 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: ExtractedOrganizationalUnitIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganizationalUnit'], required=False, default='ExtractedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedOrganizationalUnitIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.organizational_unit.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: BaseOrganizationalUnit, MergedItem

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

entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganizationalUnit'], required=False, default='MergedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True, frozen=True), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.organizational_unit.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetRequest'], required=False, default='OrganizationalUnitRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.organizational_unit.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetResponse'], required=False, default='OrganizationalUnitRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganizationalUnit'], required=False, default='PreventiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: list[MergedPrimarySourceIdentifier]
parentUnit: list[MergedPrimarySourceIdentifier]
shortName: list[MergedPrimarySourceIdentifier]
unitOf: list[MergedPrimarySourceIdentifier]
website: list[MergedPrimarySourceIdentifier]
class mex.common.models.organizational_unit.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganizationalUnit'], required=False, default='SubtractiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.person module

A person related to a source and/or resource, i.e. a project leader.

class mex.common.models.person.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')

Bases: _OptionalLists, AdditiveRule

Rule to add values to merged person items.

entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePerson'], required=False, default='AdditivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.person.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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[Email] = [], 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/0000000109403744'], 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'], 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: ExtractedPersonIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPerson'], required=False, default='ExtractedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedPersonIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.person.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)

Bases: BasePerson, MergedItem

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

entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPerson'], required=False, default='MergedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedPersonIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.person.PersonRuleSetRequest(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetRequest'], required=False, default='PersonRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.person.PersonRuleSetResponse(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetResponse'], required=False, default='PersonRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'stableTargetId': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePerson'], required=False, default='PreventivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fullName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'givenName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[MergedPrimarySourceIdentifier]
class mex.common.models.person.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePerson'], required=False, default='SubtractivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.primary_source module

A collection of information, that is managed and curated by an RKI unit.

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

Bases: _OptionalLists, _OptionalValues, AdditiveRule

Rule to add values to merged primary source items.

entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePrimarySource'], required=False, default='AdditivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedPrimarySourceIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPrimarySource'], required=False, default='ExtractedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedPrimarySourceIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BasePrimarySource, MergedItem

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

entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPrimarySource'], required=False, default='MergedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePrimarySource'], required=False, default='PreventivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[MergedPrimarySourceIdentifier]
unitInCharge: list[MergedPrimarySourceIdentifier]
version: list[MergedPrimarySourceIdentifier]
class mex.common.models.primary_source.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetRequest'], required=False, default='PrimarySourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.primary_source.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetResponse'], required=False, default='PrimarySourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'stableTargetId': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePrimarySource'], required=False, default='SubtractivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.resource module

A defined piece or collection of information.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged resource items.

entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveResource'], required=False, default='AdditiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], 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: ExtractedResourceIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedResource'], required=False, default='ExtractedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedResourceIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.resource.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)

Bases: BaseResource, MergedItem

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

entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedResource'], required=False, default='MergedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedResourceIdentifier, required=True, frozen=True), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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] = [], 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] = [], 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]
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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveResource'], required=False, default='PreventiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'loincId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'meshId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'method': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rights': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'spatial': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'temporal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: list[MergedPrimarySourceIdentifier]
populationCoverage: 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.ResourceRuleSetRequest(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetRequest'], required=False, default='ResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.resource.ResourceRuleSetResponse(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetResponse'], required=False, default='ResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[Frequency], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveResource'], required=False, default='SubtractiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[PersonalData], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]], required=False, default=[]), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]], required=False, default=[]), 'modified': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[str], required=False, default=[]), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

mex.common.models.variable module

A single piece of information within a resource.

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

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged variable items.

entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariable'], required=False, default='AdditiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedVariableIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariable'], required=False, default='ExtractedVariable', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedVariableIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseVariable, MergedItem

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

entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedVariable'], required=False, default='MergedVariable', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'dataType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariable'], required=False, default='PreventiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged variable items.

entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]], required=False, default=[]), 'dataType': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariable'], required=False, default='SubtractiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.variable.VariableRuleSetRequest(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetRequest'], required=False, default='VariableRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.variable.VariableRuleSetResponse(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetResponse'], required=False, default='VariableRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

stableTargetId: MergedVariableIdentifier

mex.common.models.variable_group module

The grouping of variables according to a certain aspect.

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

Bases: _SparseLists, AdditiveRule

Rule to add values to merged variable group items.

entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariableGroup'], required=False, default='AdditiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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: ExtractedVariableGroupIdentifier

Return the computed identifier for this extracted data item.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariableGroup'], required=False, default='ExtractedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedVariableGroupIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseVariableGroup, MergedItem

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

entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedVariableGroup'], required=False, default='MergedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariableGroup'], required=False, default='PreventiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariableGroup'], required=False, default='SubtractiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.variable_group.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetRequest'], required=False, default='VariableGroupRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.variable_group.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, 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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetResponse'], required=False, default='VariableGroupRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

stableTargetId: MergedVariableGroupIdentifier

Module contents

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

The current set of entity types includes:

  • AccessPlatform

  • Activity

  • BibliographicResource

  • Consent

  • ContactPoint

  • Distribution

  • Organization

  • OrganizationalUnit

  • Person

  • PrimarySource

  • Resource

  • Variable

  • VariableGroup

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

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

  • ExtractedT defines an automatically extracted metadata item including provenance

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

  • 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

  • ExtractedTEntityFilter defines how an entity filter specification should look like

  • ExtractedTMapping 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

  • 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

  • ExtractedTEntityFilter: all BaseT fields re-typed as a list of EntityFilter

  • ExtractedTMapping: all BaseT fields re-typed as lists of subclasses of GenericField

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.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')

Bases: _BaseRuleSet

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

additive: AdditiveAccessPlatform
entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetRequest'], required=False, default='AccessPlatformRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveAccessPlatform
subtractive: SubtractiveAccessPlatform
class mex.common.models.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an access platform item.

additive: AdditiveAccessPlatform
entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetResponse'], required=False, default='AccessPlatformRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveAccessPlatform
stableTargetId: MergedAccessPlatformIdentifier
subtractive: SubtractiveAccessPlatform
class mex.common.models.ActivityRuleSetRequest(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an activity item.

additive: AdditiveActivity
entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetRequest'], required=False, default='ActivityRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveActivity
subtractive: SubtractiveActivity
class mex.common.models.ActivityRuleSetResponse(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an activity item.

additive: AdditiveActivity
entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetResponse'], required=False, default='ActivityRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'stableTargetId': FieldInfo(annotation=MergedActivityIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged access platform items.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
endpointDescription: Link | None
endpointType: APIType | None
endpointURL: Link | None
entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveAccessPlatform'], required=False, default='AdditiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=Union[TechnicalAccessibility, NoneType], required=False, default=None), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged activity items.

abstract: list[Text]
activityType: list[ActivityType]
alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
documentation: list[Link]
end: list[YearMonthDay | YearMonth | Year]
entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]
funderOrCommissioner: list[MergedOrganizationIdentifier]
fundingProgram: list[str]
involvedPerson: list[MergedPersonIdentifier]
involvedUnit: list[MergedOrganizationalUnitIdentifier]
isPartOfActivity: list[MergedActivityIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveActivity'], required=False, default='AdditiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

publication: list[MergedBibliographicResourceIdentifier]
responsibleUnit: list[MergedOrganizationalUnitIdentifier]
shortName: list[Text]
start: list[YearMonthDay | YearMonth | Year]
succeeds: list[MergedActivityIdentifier]
theme: list[Theme]
title: list[Text]
website: list[Link]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged bibliographic resource items.

abstract: list[Text]
accessRestriction: AccessRestriction | None
alternateIdentifier: list[str]
alternativeTitle: list[Text]
bibliographicResourceType: list[BibliographicResourceType]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
creator: list[MergedPersonIdentifier]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: list[MergedPersonIdentifier]
editorOfSeries: list[MergedPersonIdentifier]
entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: list[IsbnIssnStr]
issue: VolumeOrIssueStr | None
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
journal: list[Text]
keyword: list[Text]
language: list[Language]
license: License | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveBibliographicResource'], required=False, default='AdditiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Year | None
publisher: list[MergedOrganizationIdentifier]
repositoryURL: Link | None
section: SectionStr | None
subtitle: list[Text]
title: list[Text]
titleOfBook: list[Text]
titleOfSeries: list[Text]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, hasConsentType: ConsentType | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')

Bases: _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged consent items.

entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: ConsentStatus | None
hasConsentType: ConsentType | None
hasDataSubject: MergedPersonIdentifier | None
isIndicatedAtTime: YearMonthDayTime | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['AdditiveConsent'], required=False, default='AdditiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=Union[ConsentStatus, NoneType], required=False, default=None), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=Union[MergedPersonIdentifier, NoneType], required=False, default=None), 'isIndicatedAtTime': FieldInfo(annotation=Union[YearMonthDayTime, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.AdditiveContactPoint(*, email: list[Email] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged contact point items.

email: list[Email]
entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveContactPoint'], required=False, default='AdditiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])] | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')

Bases: _OptionalLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged distribution items.

accessRestriction: AccessRestriction | None
accessService: MergedAccessPlatformIdentifier | None
accessURL: list[Link]
downloadURL: list[Link]
entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
license: License | None
mediaType: MIMEType | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveDistribution'], required=False, default='AdditiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)] | None
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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')

Bases: _OptionalLists, _SparseLists, AdditiveRule

Rule to add values to merged organization items.

alternativeName: list[Text]
entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]
gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganization'], required=False, default='AdditiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: list[Text]
rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]
shortName: list[Text]
viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]
wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]
class mex.common.models.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged organizational units.

alternativeName: list[Text]
email: list[Email]
entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganizationalUnit'], required=False, default='AdditiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: list[Text]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: list[Text]
unitOf: list[MergedOrganizationIdentifier]
website: list[Link]
class mex.common.models.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')

Bases: _OptionalLists, AdditiveRule

Rule to add values to merged person items.

affiliation: list[MergedOrganizationIdentifier]
email: list[Email]
entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]
fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]
givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
memberOf: list[MergedOrganizationalUnitIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePerson'], required=False, default='AdditivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]
class mex.common.models.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')

Bases: _OptionalLists, _OptionalValues, AdditiveRule

Rule to add values to merged primary source items.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
documentation: list[Link]
entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePrimarySource'], required=False, default='AdditivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None
class mex.common.models.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')

Bases: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule

Rule to add values to merged resource items.

accessPlatform: list[MergedAccessPlatformIdentifier]
accessRestriction: AccessRestriction | None
accrualPeriodicity: Frequency | None
alternativeTitle: list[Text]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
contributor: list[MergedPersonIdentifier]
created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
creator: list[MergedPersonIdentifier]
description: list[Text]
distribution: list[MergedDistributionIdentifier]
documentation: list[Link]
doi: DoiStr | None
entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedOrganizationIdentifier]
hasLegalBasis: list[Text]
hasPersonalData: PersonalData | None
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: list[MergedResourceIdentifier]
keyword: list[Text]
language: list[Language]
license: License | None
loincId: list[LoincIdStr]
maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None
meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]
method: list[Text]
methodDescription: list[Text]
minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveResource'], required=False, default='AdditiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
populationCoverage: list[Text]
publication: list[MergedBibliographicResourceIdentifier]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: list[Text]
resourceCreationMethod: list[ResourceCreationMethod]
resourceTypeGeneral: list[ResourceTypeGeneral]
resourceTypeSpecific: list[Text]
rights: list[Text]
sizeOfDataBasis: str | None
spatial: list[Text]
stateOfDataProcessing: list[DataProcessingState]
temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None
theme: list[Theme]
title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
wasGeneratedBy: MergedActivityIdentifier | None
class mex.common.models.AdditiveRule

Bases: BaseEntity

Base rule to add values to merged items.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, _OptionalValues, AdditiveRule

Rule to add values to merged variable items.

belongsTo: list[MergedVariableGroupIdentifier]
codingSystem: CodingSystemStr | None
dataType: DataTypeStr | None
description: list[Text]
entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariable'], required=False, default='AdditiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

usedIn: list[MergedResourceIdentifier]
valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]
class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')

Bases: _SparseLists, AdditiveRule

Rule to add values to merged variable group items.

containedBy: list[MergedResourceIdentifier]
entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[Text]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariableGroup'], required=False, default='AdditiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _OptionalValues, _RequiredValues

All fields for a valid access platform except for provenance.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
endpointDescription: Link | None
endpointType: APIType | None
endpointURL: Link | None
landingPage: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _RequiredLists

All fields for a valid activity except for provenance.

abstract: list[Text]
activityType: list[ActivityType]
alternativeTitle: list[Text]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
documentation: list[Link]
end: list[YearMonthDay | YearMonth | Year]
externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]
funderOrCommissioner: list[MergedOrganizationIdentifier]
fundingProgram: list[str]
involvedPerson: list[MergedPersonIdentifier]
involvedUnit: list[MergedOrganizationalUnitIdentifier]
isPartOfActivity: list[MergedActivityIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

publication: list[MergedBibliographicResourceIdentifier]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
shortName: list[Text]
start: list[YearMonthDay | YearMonth | Year]
succeeds: list[MergedActivityIdentifier]
theme: list[Theme]
title: Annotated[list[Text], Field(min_length=1)]
website: list[Link]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid bibliographic resource except for provenance.

abstract: list[Text]
accessRestriction: AccessRestriction
alternateIdentifier: list[str]
alternativeTitle: list[Text]
bibliographicResourceType: list[BibliographicResourceType]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: list[MergedPersonIdentifier]
editorOfSeries: list[MergedPersonIdentifier]
isbnIssn: list[IsbnIssnStr]
issue: VolumeOrIssueStr | None
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
journal: list[Text]
keyword: list[Text]
language: list[Language]
license: License | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Year | None
publisher: list[MergedOrganizationIdentifier]
repositoryURL: Link | None
section: SectionStr | None
subtitle: list[Text]
title: Annotated[list[Text], Field(min_length=1)]
titleOfBook: list[Text]
titleOfSeries: list[Text]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)

Bases: _OptionalValues, _RequiredValues

All fields for a valid consent except for provenance.

hasConsentStatus: ConsentStatus
hasConsentType: ConsentType | None
hasDataSubject: MergedPersonIdentifier
isIndicatedAtTime: YearMonthDayTime
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _RequiredLists

All fields for a valid contact point except for provenance.

email: Annotated[list[Email], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _OptionalValues, _RequiredValues

All fields for a valid distribution except for provenance.

accessRestriction: AccessRestriction
accessService: MergedAccessPlatformIdentifier | None
accessURL: list[Link]
downloadURL: list[Link]
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year
license: License | None
mediaType: MIMEType | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]
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 _get_alias_lookup() dict[str, str]

Build a cached mapping from field alias to field names.

classmethod _get_field_names_allowing_none() list[str]

Build a cached list of fields can be set to None.

classmethod _get_list_field_names() list[str]

Build a cached list of fields that look like lists.

checksum() str

Calculate md5 checksum for this model.

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

classmethod get_all_fields() dict[str, GenericFieldInfo]

Return a combined dict of defined and computed fields.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation') 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.

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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])

Bases: _OptionalLists, _RequiredLists

All fields for a valid organization except for provenance.

alternativeName: list[Text]
geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]
gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: Annotated[list[Text], Field(min_length=1)]
rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]
shortName: list[Text]
viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]
wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]
class mex.common.models.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid organizational unit except for provenance.

alternativeName: list[Text]
email: list[Email]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: Annotated[list[Text], Field(min_length=1)]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: list[Text]
unitOf: list[MergedOrganizationIdentifier]
website: list[Link]
class mex.common.models.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])

Bases: _OptionalLists

All fields for a valid person except for provenance.

affiliation: list[MergedOrganizationIdentifier]
email: list[Email]
familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]
fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]
givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
memberOf: list[MergedOrganizationalUnitIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]
class mex.common.models.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])

Bases: _OptionalLists, _OptionalValues

All fields for a valid primary source except for provenance.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
documentation: list[Link]
locatedAt: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None
class mex.common.models.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues

All fields for a valid resource except for provenance.

accessPlatform: list[MergedAccessPlatformIdentifier]
accessRestriction: AccessRestriction
accrualPeriodicity: Frequency | None
alternativeTitle: list[Text]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
contributor: list[MergedPersonIdentifier]
created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
creator: list[MergedPersonIdentifier]
description: list[Text]
distribution: list[MergedDistributionIdentifier]
documentation: list[Link]
doi: DoiStr | None
externalPartner: list[MergedOrganizationIdentifier]
hasLegalBasis: list[Text]
hasPersonalData: PersonalData | None
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: list[MergedResourceIdentifier]
keyword: list[Text]
language: list[Language]
license: License | None
loincId: list[LoincIdStr]
maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None
meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]
method: list[Text]
methodDescription: list[Text]
minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
populationCoverage: list[Text]
publication: list[MergedBibliographicResourceIdentifier]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: list[Text]
resourceCreationMethod: list[ResourceCreationMethod]
resourceTypeGeneral: list[ResourceTypeGeneral]
resourceTypeSpecific: list[Text]
rights: list[Text]
sizeOfDataBasis: str | None
spatial: list[Text]
stateOfDataProcessing: list[DataProcessingState]
temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None
theme: Annotated[list[Theme], Field(min_length=1)]
title: Annotated[list[Text], Field(min_length=1)]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
wasGeneratedBy: MergedActivityIdentifier | None
class mex.common.models.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])

Bases: _OptionalLists, _RequiredLists, _OptionalValues

All fields for a valid variable except for provenance.

belongsTo: list[MergedVariableGroupIdentifier]
codingSystem: CodingSystemStr | None
dataType: DataTypeStr | None
description: list[Text]
label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]
class mex.common.models.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])

Bases: _RequiredLists

All fields for a valid variable group except for provenance.

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
label: Annotated[list[Text], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

Set of rules to create or update a consent item.

additive: AdditiveConsent
entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetRequest'], required=False, default='ConsentRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

Set of rules to retrieve a consent item.

additive: AdditiveConsent
entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetResponse'], required=False, default='ConsentRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'stableTargetId': FieldInfo(annotation=MergedConsentIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

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

additive: AdditiveContactPoint
entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetRequest'], required=False, default='ContactPointRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

Set of rules to retrieve a contact point item.

additive: AdditiveContactPoint
entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetResponse'], required=False, default='ContactPointRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'stableTargetId': FieldInfo(annotation=MergedContactPointIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveContactPoint
stableTargetId: MergedContactPointIdentifier
subtractive: SubtractiveContactPoint
class mex.common.models.DistributionRuleSetRequest(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a distribution item.

additive: AdditiveDistribution
entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveDistribution
subtractive: SubtractiveDistribution
class mex.common.models.DistributionRuleSetResponse(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest', stableTargetId: MergedAccessPlatformIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a distribution item.

additive: AdditiveDistribution
entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: BaseAccessPlatform, ExtractedData

An automatically extracted metadata item describing an access platform.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
endpointDescription: Link | None
endpointType: APIType | None
endpointURL: Link | None
entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedAccessPlatformIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
landingPage: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedAccessPlatform'], required=False, default='ExtractedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedAccessPlatformIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseActivity, ExtractedData

An automatically extracted metadata set describing an activity.

abstract: list[Text]
activityType: list[ActivityType]
alternativeTitle: list[Text]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
documentation: list[Link]
end: list[YearMonthDay | YearMonth | Year]
entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]
funderOrCommissioner: list[MergedOrganizationIdentifier]
fundingProgram: list[str]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedActivityIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
involvedPerson: list[MergedPersonIdentifier]
involvedUnit: list[MergedOrganizationalUnitIdentifier]
isPartOfActivity: list[MergedActivityIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedActivity'], required=False, default='ExtractedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

publication: list[MergedBibliographicResourceIdentifier]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
shortName: list[Text]
property stableTargetId: MergedActivityIdentifier

Return the computed stableTargetId for this extracted data item.

start: list[YearMonthDay | YearMonth | Year]
succeeds: list[MergedActivityIdentifier]
theme: list[Theme]
title: Annotated[list[Text], Field(min_length=1)]
website: list[Link]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')

Bases: BaseBibliographicResource, ExtractedData

An automatically extracted metadata item describing a bibliographic resource.

abstract: list[Text]
accessRestriction: AccessRestriction
alternateIdentifier: list[str]
alternativeTitle: list[Text]
bibliographicResourceType: list[BibliographicResourceType]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: list[MergedPersonIdentifier]
editorOfSeries: list[MergedPersonIdentifier]
entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedBibliographicResourceIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
isbnIssn: list[IsbnIssnStr]
issue: VolumeOrIssueStr | None
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
journal: list[Text]
keyword: list[Text]
language: list[Language]
license: License | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedBibliographicResource'], required=False, default='ExtractedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Year | None
publisher: list[MergedOrganizationIdentifier]
repositoryURL: Link | None
section: SectionStr | None
property stableTargetId: MergedBibliographicResourceIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseConsent, ExtractedData

An automatically extracted metadata set describing a consent.

entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
hasConsentStatus: ConsentStatus
hasConsentType: ConsentType | None
hasDataSubject: MergedPersonIdentifier
property identifier: ExtractedConsentIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
isIndicatedAtTime: YearMonthDayTime
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['ExtractedConsent'], required=False, default='ExtractedConsent', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedConsentIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseContactPoint, ExtractedData

An automatically extracted metadata set describing a contact point.

email: Annotated[list[Email], Field(min_length=1)]
entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedContactPointIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedContactPoint'], required=False, default='ExtractedContactPoint', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedContactPointIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BaseEntity

Base model for all extracted data 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. See below, for a full description.

_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: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
identifierInPrimarySource: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')

Bases: BaseDistribution, ExtractedData

An automatically extracted metadata set describing a distribution.

accessRestriction: AccessRestriction
accessService: MergedAccessPlatformIdentifier | None
accessURL: list[Link]
downloadURL: list[Link]
entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedDistributionIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year
license: License | None
mediaType: MIMEType | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedDistribution'], required=False, default='ExtractedDistribution', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
property stableTargetId: MergedDistributionIdentifier

Return the computed stableTargetId for this extracted data item.

title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]
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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')

Bases: BaseOrganization, ExtractedData

An automatically extracted metadata set describing an organization.

alternativeName: list[Text]
entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]
gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedOrganizationIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganization'], required=False, default='ExtractedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: Annotated[list[Text], Field(min_length=1)]
rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]
shortName: list[Text]
property stableTargetId: MergedOrganizationIdentifier

Return the computed stableTargetId for this extracted data item.

viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]
wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]
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[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')

Bases: BaseOrganizationalUnit, ExtractedData

An automatically extracted metadata set describing an organizational unit.

alternativeName: list[Text]
email: list[Email]
entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedOrganizationalUnitIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganizationalUnit'], required=False, default='ExtractedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: Annotated[list[Text], Field(min_length=1)]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: list[Text]
property stableTargetId: MergedOrganizationalUnitIdentifier

Return the computed stableTargetId for this extracted data item.

unitOf: list[MergedOrganizationIdentifier]
website: list[Link]
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[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')

Bases: BasePerson, ExtractedData

An automatically extracted metadata set describing a person.

affiliation: list[MergedOrganizationIdentifier]
email: list[Email]
entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]
fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]
givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedPersonIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
memberOf: list[MergedOrganizationalUnitIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPerson'], required=False, default='ExtractedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]
property stableTargetId: MergedPersonIdentifier

Return the computed stableTargetId for this extracted data item.

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

Bases: BasePrimarySource, ExtractedData

An automatically extracted metadata set describing a primary source.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
documentation: list[Link]
entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedPrimarySourceIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
locatedAt: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPrimarySource'], required=False, default='ExtractedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedPrimarySourceIdentifier

Return the computed stableTargetId for this extracted data item.

title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None
class mex.common.models.ExtractedPrimarySourceIdentifier

Bases: ExtractedIdentifier

Identifier for extracted primary sources.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')

Bases: BaseResource, ExtractedData

An automatically extracted metadata set describing a resource.

accessPlatform: list[MergedAccessPlatformIdentifier]
accessRestriction: AccessRestriction
accrualPeriodicity: Frequency | None
alternativeTitle: list[Text]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
contributor: list[MergedPersonIdentifier]
created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
creator: list[MergedPersonIdentifier]
description: list[Text]
distribution: list[MergedDistributionIdentifier]
documentation: list[Link]
doi: DoiStr | None
entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedOrganizationIdentifier]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
hasLegalBasis: list[Text]
hasPersonalData: PersonalData | None
icd10code: list[str]
property identifier: ExtractedResourceIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
instrumentToolOrApparatus: list[Text]
isPartOf: list[MergedResourceIdentifier]
keyword: list[Text]
language: list[Language]
license: License | None
loincId: list[LoincIdStr]
maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None
meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]
method: list[Text]
methodDescription: list[Text]
minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedResource'], required=False, default='ExtractedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
populationCoverage: list[Text]
publication: list[MergedBibliographicResourceIdentifier]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: list[Text]
resourceCreationMethod: list[ResourceCreationMethod]
resourceTypeGeneral: list[ResourceTypeGeneral]
resourceTypeSpecific: list[Text]
rights: list[Text]
sizeOfDataBasis: str | None
spatial: list[Text]
property stableTargetId: MergedResourceIdentifier

Return the computed stableTargetId for this extracted data item.

stateOfDataProcessing: list[DataProcessingState]
temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None
theme: Annotated[list[Theme], Field(min_length=1)]
title: Annotated[list[Text], Field(min_length=1)]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
wasGeneratedBy: MergedActivityIdentifier | None
class mex.common.models.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')

Bases: BaseVariable, ExtractedData

An automatically extracted metadata set describing a variable.

belongsTo: list[MergedVariableGroupIdentifier]
codingSystem: CodingSystemStr | None
dataType: DataTypeStr | None
description: list[Text]
entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedVariableIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariable'], required=False, default='ExtractedVariable', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedVariableIdentifier

Return the computed stableTargetId for this extracted data item.

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]
class mex.common.models.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')

Bases: BaseVariableGroup, ExtractedData

An automatically extracted metadata set describing a variable group.

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]
property identifier: ExtractedVariableGroupIdentifier

Return the computed identifier for this extracted data item.

identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]
label: Annotated[list[Text], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariableGroup'], required=False, default='ExtractedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

property stableTargetId: MergedVariableGroupIdentifier

Return the computed stableTargetId for this extracted data item.

class mex.common.models.GenericFieldInfo(alias: str | None, annotation: type[Any] | None, frozen: bool)

Bases: object

Abstraction class for unifying FieldInfo and ComputedFieldInfo objects.

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

Bases: BaseAccessPlatform, MergedItem

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

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
endpointDescription: Link | None
endpointType: APIType | None
endpointURL: Link | None
entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
landingPage: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedAccessPlatform'], required=False, default='MergedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: BaseActivity, MergedItem

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

abstract: list[Text]
activityType: list[ActivityType]
alternativeTitle: list[Text]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
documentation: list[Link]
end: list[YearMonthDay | YearMonth | Year]
entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]
funderOrCommissioner: list[MergedOrganizationIdentifier]
fundingProgram: list[str]
identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
involvedPerson: list[MergedPersonIdentifier]
involvedUnit: list[MergedOrganizationalUnitIdentifier]
isPartOfActivity: list[MergedActivityIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedActivity'], required=False, default='MergedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedActivityIdentifier, required=True, frozen=True), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

publication: list[MergedBibliographicResourceIdentifier]
responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
shortName: list[Text]
start: list[YearMonthDay | YearMonth | Year]
succeeds: list[MergedActivityIdentifier]
theme: list[Theme]
title: Annotated[list[Text], Field(min_length=1)]
website: list[Link]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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, repositoryURL: Link | 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] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)

Bases: BaseBibliographicResource, MergedItem

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

abstract: list[Text]
accessRestriction: AccessRestriction
alternateIdentifier: list[str]
alternativeTitle: list[Text]
bibliographicResourceType: list[BibliographicResourceType]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]
distribution: list[MergedDistributionIdentifier]
doi: DoiStr | None
edition: EditionStr | None
editor: list[MergedPersonIdentifier]
editorOfSeries: list[MergedPersonIdentifier]
entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isbnIssn: list[IsbnIssnStr]
issue: VolumeOrIssueStr | None
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
journal: list[Text]
keyword: list[Text]
language: list[Language]
license: License | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedBibliographicResource'], required=False, default='MergedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[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], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None
publicationPlace: PublicationPlaceStr | None
publicationYear: Year | None
publisher: list[MergedOrganizationIdentifier]
repositoryURL: Link | None
section: SectionStr | None
subtitle: list[Text]
title: Annotated[list[Text], Field(min_length=1)]
titleOfBook: list[Text]
titleOfSeries: list[Text]
volume: VolumeOrIssueStr | None
volumeOfSeries: VolumeOrIssueStr | None
class mex.common.models.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)

Bases: BaseConsent, MergedItem

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

entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: ConsentStatus
hasConsentType: ConsentType | None
hasDataSubject: MergedPersonIdentifier
identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isIndicatedAtTime: YearMonthDayTime
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['MergedConsent'], required=False, default='MergedConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifier': FieldInfo(annotation=MergedConsentIdentifier, required=True, frozen=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: BaseContactPoint, MergedItem

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

email: Annotated[list[Email], Field(min_length=1)]
entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedContactPoint'], required=False, default='MergedContactPoint', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedContactPointIdentifier, required=True, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: BaseDistribution, MergedItem

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

accessRestriction: AccessRestriction
accessService: MergedAccessPlatformIdentifier | None
accessURL: list[Link]
downloadURL: list[Link]
entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
issued: YearMonthDayTime | YearMonthDay | YearMonth | Year
license: License | None
mediaType: MIMEType | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedDistribution'], required=False, default='MergedDistribution', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedDistributionIdentifier, required=True, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]
class mex.common.models.MergedItem

Bases: BaseEntity

Base model for all merged item classes.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)

Bases: BaseOrganization, MergedItem

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

alternativeName: list[Text]
entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]
gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]
identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganization'], required=False, default='MergedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedOrganizationIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: Annotated[list[Text], Field(min_length=1)]
rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]
shortName: list[Text]
viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]
wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]
class mex.common.models.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)

Bases: BaseOrganizationalUnit, MergedItem

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

alternativeName: list[Text]
email: list[Email]
entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganizationalUnit'], required=False, default='MergedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True, frozen=True), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: Annotated[list[Text], Field(min_length=1)]
parentUnit: MergedOrganizationalUnitIdentifier | None
shortName: list[Text]
unitOf: list[MergedOrganizationIdentifier]
website: list[Link]
class mex.common.models.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)

Bases: BasePerson, MergedItem

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

affiliation: list[MergedOrganizationIdentifier]
email: list[Email]
entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]
fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]
givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]
identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
memberOf: list[MergedOrganizationalUnitIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPerson'], required=False, default='MergedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedPersonIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]
class mex.common.models.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)

Bases: BasePrimarySource, MergedItem

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

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
documentation: list[Link]
entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
locatedAt: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPrimarySource'], required=False, default='MergedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None
class mex.common.models.MergedPrimarySourceIdentifier

Bases: MergedIdentifier

Identifier for merged primary sources.

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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)

Bases: BaseResource, MergedItem

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

accessPlatform: list[MergedAccessPlatformIdentifier]
accessRestriction: AccessRestriction
accrualPeriodicity: Frequency | None
alternativeTitle: list[Text]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]
contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
contributor: list[MergedPersonIdentifier]
created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
creator: list[MergedPersonIdentifier]
description: list[Text]
distribution: list[MergedDistributionIdentifier]
documentation: list[Link]
doi: DoiStr | None
entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedOrganizationIdentifier]
hasLegalBasis: list[Text]
hasPersonalData: PersonalData | None
icd10code: list[str]
identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
instrumentToolOrApparatus: list[Text]
isPartOf: list[MergedResourceIdentifier]
keyword: list[Text]
language: list[Language]
license: License | None
loincId: list[LoincIdStr]
maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None
meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]
method: list[Text]
methodDescription: list[Text]
minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedResource'], required=False, default='MergedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedResourceIdentifier, required=True, frozen=True), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None
populationCoverage: list[Text]
publication: list[MergedBibliographicResourceIdentifier]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: list[Text]
resourceCreationMethod: list[ResourceCreationMethod]
resourceTypeGeneral: list[ResourceTypeGeneral]
resourceTypeSpecific: list[Text]
rights: list[Text]
sizeOfDataBasis: str | None
spatial: list[Text]
stateOfDataProcessing: list[DataProcessingState]
temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None
theme: Annotated[list[Theme], Field(min_length=1)]
title: Annotated[list[Text], Field(min_length=1)]
unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]
wasGeneratedBy: MergedActivityIdentifier | None
class mex.common.models.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)

Bases: BaseVariable, MergedItem

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

belongsTo: list[MergedVariableGroupIdentifier]
codingSystem: CodingSystemStr | None
dataType: DataTypeStr | None
description: list[Text]
entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedVariable'], required=False, default='MergedVariable', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]
class mex.common.models.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)

Bases: BaseVariableGroup, MergedItem

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

containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]
entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]
label: Annotated[list[Text], Field(min_length=1)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedVariableGroup'], required=False, default='MergedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.OrganizationRuleSetRequest(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update an organization item.

additive: AdditiveOrganization
entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetRequest'], required=False, default='OrganizationRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveOrganization
subtractive: SubtractiveOrganization
class mex.common.models.OrganizationRuleSetResponse(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organization item.

additive: AdditiveOrganization
entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetResponse'], required=False, default='OrganizationRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveOrganization
stableTargetId: MergedOrganizationIdentifier
subtractive: SubtractiveOrganization
class mex.common.models.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')

Bases: _BaseRuleSet

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

additive: AdditiveOrganizationalUnit
entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetRequest'], required=False, default='OrganizationalUnitRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveOrganizationalUnit
subtractive: SubtractiveOrganizationalUnit
class mex.common.models.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve an organizational unit item.

additive: AdditiveOrganizationalUnit
entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetResponse'], required=False, default='OrganizationalUnitRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveOrganizationalUnit
stableTargetId: MergedOrganizationalUnitIdentifier
subtractive: SubtractiveOrganizationalUnit
class mex.common.models.PersonRuleSetRequest(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a person item.

additive: AdditivePerson
entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetRequest'], required=False, default='PersonRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventivePerson
subtractive: SubtractivePerson
class mex.common.models.PersonRuleSetResponse(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a person item.

additive: AdditivePerson
entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetResponse'], required=False, default='PersonRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'stableTargetId': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _Stem, PreventiveRule

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

alternativeTitle: list[MergedPrimarySourceIdentifier]
contact: list[MergedPrimarySourceIdentifier]
description: list[MergedPrimarySourceIdentifier]
endpointDescription: list[MergedPrimarySourceIdentifier]
endpointType: list[MergedPrimarySourceIdentifier]
endpointURL: list[MergedPrimarySourceIdentifier]
entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: list[MergedPrimarySourceIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveAccessPlatform'], required=False, default='PreventiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'activityType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'end': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveActivity'], required=False, default='PreventiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'start': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'edition': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveBibliographicResource'], required=False, default='PreventiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issue': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'journal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'pages': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'section': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volume': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['PreventiveConsent'], required=False, default='PreventiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveContactPoint'], required=False, default='PreventiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessService': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveDistribution'], required=False, default='PreventiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'mediaType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganization'], required=False, default='PreventiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'gndId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'officialName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rorId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'viafId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganizationalUnit'], required=False, default='PreventiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePerson'], required=False, default='PreventivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fullName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'givenName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePrimarySource'], required=False, default='PreventivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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] = [], 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] = [], 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]
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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveResource'], required=False, default='PreventiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'loincId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'meshId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'method': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rights': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'spatial': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'temporal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: list[MergedPrimarySourceIdentifier]
populationCoverage: 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: BaseEntity

Base rule to prevent primary sources for fields of merged items.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'dataType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariable'], required=False, default='PreventiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariableGroup'], required=False, default='PreventiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')

Bases: _BaseRuleSet

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

additive: AdditivePrimarySource
entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetRequest'], required=False, default='PrimarySourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventivePrimarySource
subtractive: SubtractivePrimarySource
class mex.common.models.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a primary source item.

additive: AdditivePrimarySource
entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetResponse'], required=False, default='PrimarySourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'stableTargetId': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventivePrimarySource
stableTargetId: MergedPrimarySourceIdentifier
subtractive: SubtractivePrimarySource
class mex.common.models.ResourceRuleSetRequest(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a resource item.

additive: AdditiveResource
entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetRequest'], required=False, default='ResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveResource
subtractive: SubtractiveResource
class mex.common.models.ResourceRuleSetResponse(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a resource item.

additive: AdditiveResource
entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetResponse'], required=False, default='ResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged access platform items.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
endpointDescription: list[Link]
endpointType: list[APIType]
endpointURL: list[Link]
entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
landingPage: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[Link], required=True), 'endpointType': FieldInfo(annotation=list[APIType], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveAccessPlatform'], required=False, default='SubtractiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[TechnicalAccessibility], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged activity items.

abstract: list[Text]
activityType: list[ActivityType]
alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
documentation: list[Link]
end: list[YearMonthDay | YearMonth | Year]
entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]
funderOrCommissioner: list[MergedOrganizationIdentifier]
fundingProgram: list[str]
involvedPerson: list[MergedPersonIdentifier]
involvedUnit: list[MergedOrganizationalUnitIdentifier]
isPartOfActivity: list[MergedActivityIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveActivity'], required=False, default='SubtractiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

publication: list[MergedBibliographicResourceIdentifier]
responsibleUnit: list[MergedOrganizationalUnitIdentifier]
shortName: list[Text]
start: list[YearMonthDay | YearMonth | Year]
succeeds: list[MergedActivityIdentifier]
theme: list[Theme]
title: list[Text]
website: list[Link]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged bibliographic resource items.

abstract: list[Text]
accessRestriction: list[AccessRestriction]
alternateIdentifier: list[str]
alternativeTitle: list[Text]
bibliographicResourceType: list[BibliographicResourceType]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
creator: list[MergedPersonIdentifier]
distribution: list[MergedDistributionIdentifier]
doi: list[DoiStr]
edition: list[EditionStr]
editor: list[MergedPersonIdentifier]
editorOfSeries: list[MergedPersonIdentifier]
entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
isbnIssn: list[IsbnIssnStr]
issue: list[VolumeOrIssueStr]
issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]
journal: list[Text]
keyword: list[Text]
language: list[Language]
license: list[License]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'edition': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveBibliographicResource'], required=False, default='SubtractiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=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'])]], required=False, default=[]), 'issue': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'pages': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[Year], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'section': FieldInfo(annotation=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.'])]], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

pages: list[Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]]
publicationPlace: list[PublicationPlaceStr]
publicationYear: list[Year]
publisher: list[MergedOrganizationIdentifier]
repositoryURL: list[Link]
section: list[SectionStr]
subtitle: list[Text]
title: list[Text]
titleOfBook: list[Text]
titleOfSeries: list[Text]
volume: list[VolumeOrIssueStr]
volumeOfSeries: list[VolumeOrIssueStr]
class mex.common.models.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')

Bases: _VariadicValues, SubtractiveRule

Rule to subtract values from merged consent items.

entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
hasConsentStatus: list[ConsentStatus]
hasConsentType: list[ConsentType]
hasDataSubject: list[MergedPersonIdentifier]
isIndicatedAtTime: list[YearMonthDayTime]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['SubtractiveConsent'], required=False, default='SubtractiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[ConsentStatus], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[ConsentType], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[YearMonthDayTime], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.SubtractiveContactPoint(*, email: list[Email] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged contact point items.

email: list[Email]
entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveContactPoint'], required=False, default='SubtractiveContactPoint', alias='$type', alias_priority=2, frozen=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

class mex.common.models.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged distribution items.

accessRestriction: list[AccessRestriction]
accessURL: list[Link]
downloadURL: list[Link]
entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveDistribution'], required=False, default='SubtractiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'title': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]]
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'], 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'], 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'], 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'], 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'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')

Bases: _OptionalLists, _SparseLists, SubtractiveRule

Rule to subtract values from merged organization items.

alternativeName: list[Text]
entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]
gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganization'], required=False, default='SubtractiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

officialName: list[Text]
rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]
shortName: list[Text]
viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]
wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]
class mex.common.models.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged organizational units.

alternativeName: list[Text]
email: list[Email]
entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganizationalUnit'], required=False, default='SubtractiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

name: list[Text]
parentUnit: list[MergedOrganizationalUnitIdentifier]
shortName: list[Text]
unitOf: list[MergedOrganizationIdentifier]
website: list[Link]
class mex.common.models.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], 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/0000000109403744'], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')

Bases: _OptionalLists, SubtractiveRule

Rule to subtract values from merged person items.

affiliation: list[MergedOrganizationIdentifier]
email: list[Email]
entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]
fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]
givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]
isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]
memberOf: list[MergedOrganizationalUnitIdentifier]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePerson'], required=False, default='SubtractivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]
class mex.common.models.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')

Bases: _OptionalLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged primary source items.

alternativeTitle: list[Text]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
description: list[Text]
documentation: list[Link]
entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
locatedAt: list[Link]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePrimarySource'], required=False, default='SubtractivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
version: list[Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])]]
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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], 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] = [], 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'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], 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] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged resource items.

accessPlatform: list[MergedAccessPlatformIdentifier]
accessRestriction: list[AccessRestriction]
accrualPeriodicity: list[Frequency]
alternativeTitle: list[Text]
anonymizationPseudonymization: list[AnonymizationPseudonymization]
conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]
contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]
contributingUnit: list[MergedOrganizationalUnitIdentifier]
contributor: list[MergedPersonIdentifier]
created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]
creator: list[MergedPersonIdentifier]
description: list[Text]
distribution: list[MergedDistributionIdentifier]
documentation: list[Link]
doi: list[DoiStr]
entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
externalPartner: list[MergedOrganizationIdentifier]
hasLegalBasis: list[Text]
hasPersonalData: list[PersonalData]
icd10code: list[str]
instrumentToolOrApparatus: list[Text]
isPartOf: list[MergedResourceIdentifier]
keyword: list[Text]
language: list[Language]
license: list[License]
loincId: list[LoincIdStr]
maxTypicalAge: list[Annotated[int, Field(examples=['99', '21'])]]
meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]
method: list[Text]
methodDescription: list[Text]
minTypicalAge: list[Annotated[int, Field(examples=['0', '18'])]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[Frequency], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=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='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveResource'], required=False, default='SubtractiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[PersonalData], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]], required=False, default=[]), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]], required=False, default=[]), 'modified': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[str], required=False, default=[]), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]
populationCoverage: list[Text]
publication: list[MergedBibliographicResourceIdentifier]
publisher: list[MergedOrganizationIdentifier]
qualityInformation: list[Text]
resourceCreationMethod: list[ResourceCreationMethod]
resourceTypeGeneral: list[ResourceTypeGeneral]
resourceTypeSpecific: list[Text]
rights: list[Text]
sizeOfDataBasis: list[str]
spatial: list[Text]
stateOfDataProcessing: list[DataProcessingState]
temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]
theme: list[Theme]
title: list[Text]
unitInCharge: list[MergedOrganizationalUnitIdentifier]
wasGeneratedBy: list[MergedActivityIdentifier]
class mex.common.models.SubtractiveRule

Bases: BaseEntity

Base rule to subtract values from merged items.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule

Rule to subtract values from merged variable items.

belongsTo: list[MergedVariableGroupIdentifier]
codingSystem: list[CodingSystemStr]
dataType: list[DataTypeStr]
description: list[Text]
entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]], required=False, default=[]), 'dataType': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariable'], required=False, default='SubtractiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

usedIn: list[MergedResourceIdentifier]
valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]
class mex.common.models.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')

Bases: _SparseLists, SubtractiveRule

Rule to subtract values from merged variable group items.

containedBy: list[MergedResourceIdentifier]
entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
label: list[Text]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariableGroup'], required=False, default='SubtractiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

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

additive: AdditiveVariableGroup
entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetRequest'], required=False, default='VariableGroupRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

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

Bases: _BaseRuleSet

Set of rules to retrieve a variable group item.

additive: AdditiveVariableGroup
entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetResponse'], required=False, default='VariableGroupRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveVariableGroup
stableTargetId: MergedVariableGroupIdentifier
subtractive: SubtractiveVariableGroup
class mex.common.models.VariableRuleSetRequest(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')

Bases: _BaseRuleSet

Set of rules to create or update a variable item.

additive: AdditiveVariable
entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetRequest'], required=False, default='VariableRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveVariable
subtractive: SubtractiveVariable
class mex.common.models.VariableRuleSetResponse(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)

Bases: _BaseRuleSet

Set of rules to retrieve a variable item.

additive: AdditiveVariable
entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

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

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

model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetResponse'], required=False, default='VariableRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

preventive: PreventiveVariable
stableTargetId: MergedVariableIdentifier
subtractive: SubtractiveVariable
mex.common.models.generate_entity_filter_schema(extracted_model: type[AnyExtractedModel]) type[BaseModel]

Create a mapping schema for an entity filter for an extracted model class.

Example entity filter: If activity starts before 2016: do not extract.

Parameters:

extracted_model – a pydantic model for an extracted model class

Returns:

model of the mapping schema for an entity filter

mex.common.models.generate_mapping_schema(extracted_model: type[AnyExtractedModel]) type[BaseModel]

Create a mapping schema the MEx extracted model class.

Pydantic models are dynamically created for the given entity type from depending on the respective fields and their types.

Parameters:

extracted_model – a pydantic model for an extracted model class

Returns:

dynamic mapping model for the provided extracted model class