mex.common.models package¶
Subpackages¶
- mex.common.models.base package
- Submodules
- mex.common.models.base.container module
- mex.common.models.base.extracted_data module
- mex.common.models.base.filter module
- mex.common.models.base.mapping module
- mex.common.models.base.merged_item module
- mex.common.models.base.model module
- mex.common.models.base.preview_item module
- mex.common.models.base.rules module
- mex.common.models.base.schema module
- mex.common.models.base.status module
- Module contents
Submodules¶
mex.common.models.access_platform module¶
- class mex.common.models.access_platform.AccessPlatformFilter(*, entityType: Literal['AccessPlatformFilter'] = 'AccessPlatformFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for access platform items.
- entityType: Annotated[Literal['AccessPlatformFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.AccessPlatformMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an access platform transformation.
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]¶
- description: list[MappingField[list[Text]]]¶
- endpointDescription: list[MappingField[Link | NoneType]]¶
- endpointType: list[MappingField[APIType | NoneType]]¶
- endpointURL: list[MappingField[Link | NoneType]]¶
- entityType: Annotated[Literal['AccessPlatformMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MappingField[list[Link]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- class mex.common.models.access_platform.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.access_platform.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform', supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged access platform items.
- entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.access_platform.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValues,_RequiredValuesAll fields for a valid access platform except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform,ExtractedDataAn automatically extracted metadata item describing an access platform.
- entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.access_platform.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier, supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
BaseAccessPlatform,MergedItemThe result of merging all extracted items and rules for an access platform.
- entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.access_platform.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged access platform items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- endpointDescription: list[MergedPrimarySourceIdentifier]¶
- endpointType: list[MergedPrimarySourceIdentifier]¶
- endpointURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.access_platform.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier, supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for an access platform.
- entityType: Annotated[Literal['PreviewAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.access_platform.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged access platform items.
- entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform._BaseRuleSet(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for an access platform item.
- additive: AdditiveAccessPlatform¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveAccessPlatform¶
- subtractive: SubtractiveAccessPlatform¶
mex.common.models.activity module¶
- class mex.common.models.activity.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for activity items.
- entityType: Annotated[Literal['ActivityFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ActivityMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ActivityMapping'] = 'ActivityMapping', contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an activity transformation.
- abstract: list[MappingField[list[Text]]]¶
- activityType: list[MappingField[list[ActivityType]]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- documentation: list[MappingField[list[Link]]]¶
- end: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- entityType: Annotated[Literal['ActivityMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]]¶
- funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- fundingProgram: list[MappingField[list[str]]]¶
- involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]¶
- involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- shortName: list[MappingField[list[Text]]]¶
- start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- succeeds: list[MappingField[list[MergedActivityIdentifier]]]¶
- theme: list[MappingField[list[Theme]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.activity.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity', supersededBy=None), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an activity item.
- entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity', supersededBy=None), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an activity item.
- entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedActivityIdentifier¶
- class mex.common.models.activity.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity', supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged activity items.
- entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.activity.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid activity except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity,ExtractedDataAn automatically extracted metadata set describing an activity.
- entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.activity.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier, supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
BaseActivity,MergedItemThe result of merging all extracted items and rules for an activity.
- entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.activity.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged activity items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- activityType: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- end: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MergedPrimarySourceIdentifier]¶
- funderOrCommissioner: list[MergedPrimarySourceIdentifier]¶
- fundingProgram: list[MergedPrimarySourceIdentifier]¶
- involvedPerson: list[MergedPrimarySourceIdentifier]¶
- involvedUnit: list[MergedPrimarySourceIdentifier]¶
- isPartOfActivity: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MergedPrimarySourceIdentifier]¶
- responsibleUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- start: list[MergedPrimarySourceIdentifier]¶
- succeeds: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.activity.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier, supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an activity.
- entityType: Annotated[Literal['PreviewActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.activity.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged activity items.
- entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity._BaseRuleSet(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity', supersededBy=None), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for an activity item.
- additive: AdditiveActivity¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveActivity¶
- subtractive: SubtractiveActivity¶
mex.common.models.bibliographic_resource module¶
- class mex.common.models.bibliographic_resource.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource', supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged bibliographic resource items.
- entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.bibliographic_resource.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid bibliographic resource except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for bibliographic resource items.
- entityType: Annotated[Literal['BibliographicResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a bibliographic resource transformation.
- abstract: list[MappingField[list[Text]]]¶
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- alternateIdentifier: list[MappingField[list[str]]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]]¶
- contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- distribution: list[MappingField[list[MergedDistributionIdentifier]]]¶
- doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]¶
- edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]]¶
- editor: list[MappingField[list[MergedPersonIdentifier]]]¶
- editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]]¶
- entityType: Annotated[Literal['BibliographicResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]¶
- issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- journal: list[MappingField[list[Text]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]¶
- publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]¶
- publicationYear: list[MappingField[Year | NoneType]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- repositoryURL: list[MappingField[Link | NoneType]]¶
- section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]¶
- subtitle: list[MappingField[list[Text]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- titleOfBook: list[MappingField[list[Text]]]¶
- titleOfSeries: list[MappingField[list[Text]]]¶
- volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetRequest(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource', supersededBy=None), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetRequest'] = 'BibliographicResourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a bibliographic resource item.
- entityType: Annotated[Literal['BibliographicResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetResponse(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource', supersededBy=None), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetResponse'] = 'BibliographicResourceRuleSetResponse', stableTargetId: MergedBibliographicResourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a bibliographic resource item.
- entityType: Annotated[Literal['BibliographicResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedBibliographicResourceIdentifier¶
- class mex.common.models.bibliographic_resource.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')¶
Bases:
BaseBibliographicResource,ExtractedDataAn automatically extracted metadata item describing a bibliographic resource.
- entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.bibliographic_resource.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier, supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
BaseBibliographicResource,MergedItemThe result of merging all extracted items and rules for a bibliographic resource.
- entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.bibliographic_resource.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged bibliographic resource items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- alternateIdentifier: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- bibliographicResourceType: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- edition: list[MergedPrimarySourceIdentifier]¶
- editor: list[MergedPrimarySourceIdentifier]¶
- editorOfSeries: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MergedPrimarySourceIdentifier]¶
- issue: list[MergedPrimarySourceIdentifier]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- journal: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MergedPrimarySourceIdentifier]¶
- publicationPlace: list[MergedPrimarySourceIdentifier]¶
- publicationYear: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- repositoryURL: list[MergedPrimarySourceIdentifier]¶
- section: list[MergedPrimarySourceIdentifier]¶
- subtitle: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- titleOfBook: list[MergedPrimarySourceIdentifier]¶
- titleOfSeries: list[MergedPrimarySourceIdentifier]¶
- volume: list[MergedPrimarySourceIdentifier]¶
- volumeOfSeries: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.bibliographic_resource.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier, supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a bibliographic resource.
- entityType: Annotated[Literal['PreviewBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.bibliographic_resource.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged bibliographic resource items.
- entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource._BaseRuleSet(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource', supersededBy=None), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a bibliographic resource item.
- additive: AdditiveBibliographicResource¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveBibliographicResource¶
- subtractive: SubtractiveBibliographicResource¶
mex.common.models.consent module¶
- class mex.common.models.consent.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent', supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged consent items.
- entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.consent.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues,_RequiredValuesAll fields for a valid consent except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for consent items.
- entityType: Annotated[Literal['ConsentFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ConsentMapping'] = 'ConsentMapping', hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a consent transformation.
- entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentType: list[MappingField[ConsentType | NoneType]]¶
- hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a consent item.
- entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a consent item.
- entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedConsentIdentifier¶
- class mex.common.models.consent.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')¶
Bases:
BaseConsent,ExtractedDataAn automatically extracted metadata set describing a consent.
- entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.consent.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier, supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
BaseConsent,MergedItemThe result of merging all extracted items and rules for a consent.
- entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.consent.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged consent items.
- entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[MergedPrimarySourceIdentifier]¶
- hasConsentType: list[MergedPrimarySourceIdentifier]¶
- hasDataSubject: list[MergedPrimarySourceIdentifier]¶
- isIndicatedAtTime: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier, supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a consent.
- entityType: Annotated[Literal['PreviewConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.consent.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues,SubtractiveRuleRule to subtract values from merged consent items.
- entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent._BaseRuleSet(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a consent item.
- additive: AdditiveConsent¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveConsent¶
- subtractive: SubtractiveConsent¶
mex.common.models.contact_point module¶
- class mex.common.models.contact_point.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint', supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged contact point items.
- entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.contact_point.BaseContactPoint(*, email: MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid contact point except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for contact point items.
- entityType: Annotated[Literal['ContactPointFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', email: MinLen(min_length=1)])¶
Bases:
_Stem,BaseMappingMapping for describing a contact point transformation.
- email: [^@ \\t\\r\\n]+$')])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- entityType: Annotated[Literal['ContactPointMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedContactPointIdentifier¶
- class mex.common.models.contact_point.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')¶
Bases:
BaseContactPoint,ExtractedDataAn automatically extracted metadata set describing a contact point.
- entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.contact_point.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier, supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
BaseContactPoint,MergedItemThe result of merging all extracted items and rules for a contact point.
- entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.contact_point.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged contact point items.
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier, supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a contact point.
- entityType: Annotated[Literal['PreviewContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.contact_point.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged contact point items.
- entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point._BaseRuleSet(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a contact point item.
- additive: AdditiveContactPoint¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveContactPoint¶
- subtractive: SubtractiveContactPoint¶
mex.common.models.distribution module¶
- class mex.common.models.distribution.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution', supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged distribution items.
- entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.distribution.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid distribution except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for distribution items.
- entityType: Annotated[Literal['DistributionFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['DistributionMapping'] = 'DistributionMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a distribution transformation.
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]]¶
- accessURL: list[MappingField[list[Link]]]¶
- downloadURL: list[MappingField[list[Link]]]¶
- entityType: Annotated[Literal['DistributionMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- license: list[MappingField[License | NoneType]]¶
- mediaType: list[MappingField[MIMEType | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- class mex.common.models.distribution.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.distribution.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')¶
Bases:
BaseDistribution,ExtractedDataAn automatically extracted metadata set describing a distribution.
- entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.distribution.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier, supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
BaseDistribution,MergedItemThe result of merging all extracted items and rules for a distribution.
- entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.distribution.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged distribution items.
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accessService: list[MergedPrimarySourceIdentifier]¶
- accessURL: list[MergedPrimarySourceIdentifier]¶
- downloadURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- mediaType: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.distribution.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier, supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a distribution.
- entityType: Annotated[Literal['PreviewDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.distribution.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged distribution items.
- entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution._BaseRuleSet(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a distribution item.
- additive: AdditiveDistribution¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveDistribution¶
- subtractive: SubtractiveDistribution¶
mex.common.models.organization module¶
- class mex.common.models.organization.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization', supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged organization items.
- entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organization.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid organization except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization,ExtractedDataAn automatically extracted metadata set describing an organization.
- entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.organization.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier, supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
BaseOrganization,MergedItemThe result of merging all extracted items and rules for an organization.
- entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organization.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for organization items.
- entityType: Annotated[Literal['OrganizationFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.OrganizationMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an organization transformation.
- alternativeName: list[MappingField[list[Text]]]¶
- entityType: Annotated[Literal['OrganizationMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]]¶
- gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]¶
- shortName: list[MappingField[list[Text]]]¶
- viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]¶
- wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]¶
- class mex.common.models.organization.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedOrganizationIdentifier¶
- class mex.common.models.organization.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged organization items.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[MergedPrimarySourceIdentifier]¶
- gndId: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: list[MergedPrimarySourceIdentifier]¶
- rorId: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- viafId: list[MergedPrimarySourceIdentifier]¶
- wikidataId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organization.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier, supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an organization.
- entityType: Annotated[Literal['PreviewOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organization.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged organization items.
- entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization._BaseRuleSet(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for an organization item.
- additive: AdditiveOrganization¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganization¶
- subtractive: SubtractiveOrganization¶
mex.common.models.organizational_unit module¶
- class mex.common.models.organizational_unit.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit', supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged organizational units.
- entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organizational_unit.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid organizational unit except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit,ExtractedDataAn automatically extracted metadata set describing an organizational unit.
- entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.organizational_unit.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier, supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
BaseOrganizationalUnit,MergedItemThe result of merging all extracted items and rules for an organizational unit.
- entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organizational_unit.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for organizational unit items.
- entityType: Annotated[Literal['OrganizationalUnitFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.OrganizationalUnitMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an organizational unit transformation.
- alternativeName: list[MappingField[list[Text]]]¶
- email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]¶
- entityType: Annotated[Literal['OrganizationalUnitMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]¶
- shortName: list[MappingField[list[Text]]]¶
- unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedOrganizationalUnitIdentifier¶
- class mex.common.models.organizational_unit.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged organizational units.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: list[MergedPrimarySourceIdentifier]¶
- parentUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- unitOf: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organizational_unit.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier, supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for an organizational unit.
- entityType: Annotated[Literal['PreviewOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.organizational_unit.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged organizational units.
- entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit._BaseRuleSet(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for an organizational unit item.
- additive: AdditiveOrganizationalUnit¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganizationalUnit¶
- subtractive: SubtractiveOrganizationalUnit¶
mex.common.models.person module¶
- class mex.common.models.person.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson', supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
_OptionalLists,AdditiveRuleRule to add values to merged person items.
- entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.person.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalListsAll fields for a valid person except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson,ExtractedDataAn automatically extracted metadata set describing a person.
- entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.person.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier, supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
BasePerson,MergedItemThe result of merging all extracted items and rules for a person.
- entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.person.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for person items.
- entityType: Annotated[Literal['PersonFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.PersonMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PersonMapping'] = 'PersonMapping', affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a person transformation.
- affiliation: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]¶
- entityType: Annotated[Literal['PersonMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]]¶
- fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]]¶
- givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]¶
- class mex.common.models.person.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a person item.
- entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a person item.
- entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedPersonIdentifier¶
- class mex.common.models.person.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged person items.
- affiliation: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MergedPrimarySourceIdentifier]¶
- fullName: list[MergedPrimarySourceIdentifier]¶
- givenName: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- memberOf: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.person.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier, supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
_OptionalLists,PreviewItemPreview for merging all extracted items and rules for a person.
- entityType: Annotated[Literal['PreviewPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.person.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists,SubtractiveRuleRule to subtract values from merged person items.
- entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person._BaseRuleSet(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a person item.
- additive: AdditivePerson¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePerson¶
- subtractive: SubtractivePerson¶
mex.common.models.primary_source module¶
- class mex.common.models.primary_source.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource', supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,AdditiveRuleRule to add values to merged primary source items.
- entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.primary_source.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValuesAll fields for a valid primary source except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource,ExtractedDataAn automatically extracted metadata set describing a primary source.
- entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.primary_source.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier, supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
BasePrimarySource,MergedItemThe result of merging all extracted items and rules for a primary source.
- entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.primary_source.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged primary source items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- version: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.primary_source.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier, supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a primary source.
- entityType: Annotated[Literal['PreviewPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.primary_source.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for primary source items.
- entityType: Annotated[Literal['PrimarySourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PrimarySourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a primary source transformation.
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]¶
- description: list[MappingField[list[Text]]]¶
- documentation: list[MappingField[list[Link]]]¶
- entityType: Annotated[Literal['PrimarySourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MappingField[list[Link]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]¶
- class mex.common.models.primary_source.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedPrimarySourceIdentifier¶
- class mex.common.models.primary_source.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged primary source items.
- entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source._BaseRuleSet(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a primary source item.
- additive: AdditivePrimarySource¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePrimarySource¶
- subtractive: SubtractivePrimarySource¶
mex.common.models.resource module¶
- class mex.common.models.resource.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource', supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged resource items.
- entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.resource.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid resource except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource,ExtractedDataAn automatically extracted metadata set describing a resource.
- entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.resource.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier, supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
BaseResource,MergedItemThe result of merging all extracted items and rules for a resource.
- entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.resource.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPurpose: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], provenance: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged resource items.
- accessPlatform: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accrualPeriodicity: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]¶
- conformsTo: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- contributor: list[MergedPrimarySourceIdentifier]¶
- created: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedPrimarySourceIdentifier]¶
- hasLegalBasis: list[MergedPrimarySourceIdentifier]¶
- hasPersonalData: list[MergedPrimarySourceIdentifier]¶
- hasPurpose: list[MergedPrimarySourceIdentifier]¶
- icd10code: list[MergedPrimarySourceIdentifier]¶
- instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]¶
- isPartOf: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- loincId: list[MergedPrimarySourceIdentifier]¶
- maxTypicalAge: list[MergedPrimarySourceIdentifier]¶
- meshId: list[MergedPrimarySourceIdentifier]¶
- method: list[MergedPrimarySourceIdentifier]¶
- methodDescription: list[MergedPrimarySourceIdentifier]¶
- minTypicalAge: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- populationCoverage: list[MergedPrimarySourceIdentifier]¶
- provenance: list[MergedPrimarySourceIdentifier]¶
- publication: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- qualityInformation: list[MergedPrimarySourceIdentifier]¶
- resourceCreationMethod: list[MergedPrimarySourceIdentifier]¶
- resourceTypeGeneral: list[MergedPrimarySourceIdentifier]¶
- resourceTypeSpecific: list[MergedPrimarySourceIdentifier]¶
- rights: list[MergedPrimarySourceIdentifier]¶
- sizeOfDataBasis: list[MergedPrimarySourceIdentifier]¶
- spatial: list[MergedPrimarySourceIdentifier]¶
- stateOfDataProcessing: list[MergedPrimarySourceIdentifier]¶
- temporal: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- wasGeneratedBy: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.resource.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier, supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a resource.
- entityType: Annotated[Literal['PreviewResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.resource.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for resource items.
- entityType: Annotated[Literal['ResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ResourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ResourceMapping'] = 'ResourceMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a resource transformation.
- accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]]¶
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- accrualPeriodicity: list[MappingField[Frequency | NoneType]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]]¶
- conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]]¶
- contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- contributor: list[MappingField[list[MergedPersonIdentifier]]]¶
- created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- creator: list[MappingField[list[MergedPersonIdentifier]]]¶
- description: list[MappingField[list[Text]]]¶
- distribution: list[MappingField[list[MergedDistributionIdentifier]]]¶
- documentation: list[MappingField[list[Link]]]¶
- doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]¶
- entityType: Annotated[Literal['ResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- hasLegalBasis: list[MappingField[list[Text]]]¶
- hasPersonalData: list[MappingField[PersonalData | NoneType]]¶
- hasPurpose: list[MappingField[list[Text]]]¶
- icd10code: list[MappingField[list[str]]]¶
- instrumentToolOrApparatus: list[MappingField[list[Text]]]¶
- isPartOf: list[MappingField[list[MergedResourceIdentifier]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]¶
- maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]¶
- meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]¶
- method: list[MappingField[list[Text]]]¶
- methodDescription: list[MappingField[list[Text]]]¶
- minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- populationCoverage: list[MappingField[list[Text]]]¶
- provenance: list[MappingField[list[Text]]]¶
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- qualityInformation: list[MappingField[list[Text]]]¶
- resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]¶
- resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]¶
- resourceTypeSpecific: list[MappingField[list[Text]]]¶
- rights: list[MappingField[list[Text]]]¶
- sizeOfDataBasis: list[MappingField[str | NoneType]]¶
- spatial: list[MappingField[list[Text]]]¶
- stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]¶
- temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]¶
- theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]¶
- class mex.common.models.resource.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource', supersededBy=None), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a resource item.
- entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource', supersededBy=None), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a resource item.
- entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedResourceIdentifier¶
- class mex.common.models.resource.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged resource items.
- entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource._BaseRuleSet(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource', supersededBy=None), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a resource item.
- additive: AdditiveResource¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveResource¶
- subtractive: SubtractiveResource¶
mex.common.models.variable module¶
- class mex.common.models.variable.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable', supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged variable items.
- entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid variable except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable,ExtractedDataAn automatically extracted metadata set describing a variable.
- entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.variable.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier, supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
BaseVariable,MergedItemThe result of merging all extracted items and rules for a variable.
- entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged variable items.
- belongsTo: list[MergedPrimarySourceIdentifier]¶
- codingSystem: list[MergedPrimarySourceIdentifier]¶
- dataType: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: list[MergedPrimarySourceIdentifier]¶
- valueSet: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.variable.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier, supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a variable.
- entityType: Annotated[Literal['PreviewVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged variable items.
- entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.VariableFilter(*, entityType: Literal['VariableFilter'] = 'VariableFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for variable items.
- entityType: Annotated[Literal['VariableFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.VariableMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableMapping'] = 'VariableMapping', codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a variable transformation.
- belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]]¶
- codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]]¶
- dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]]¶
- description: list[MappingField[list[Text]]]¶
- entityType: Annotated[Literal['VariableMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]¶
- class mex.common.models.variable.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable item.
- entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable item.
- entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableIdentifier¶
- class mex.common.models.variable._BaseRuleSet(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a variable item.
- additive: AdditiveVariable¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariable¶
- subtractive: SubtractiveVariable¶
mex.common.models.variable_group module¶
- class mex.common.models.variable_group.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup', supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged variable group items.
- entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable_group.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid variable group except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup,ExtractedDataAn automatically extracted metadata set describing a variable group.
- entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.variable_group.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier, supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
BaseVariableGroup,MergedItemThe result of merging all extracted items and rules for a variable group.
- entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable_group.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged variable group items.
- containedBy: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier, supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a variable group.
- entityType: Annotated[Literal['PreviewVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.variable_group.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged variable group items.
- entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupFilter(*, entityType: Literal['VariableGroupFilter'] = 'VariableGroupFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for variable group items.
- entityType: Annotated[Literal['VariableGroupFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])¶
Bases:
_Stem,BaseMappingMapping for describing a variable group transformation.
- containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- entityType: Annotated[Literal['VariableGroupMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableGroupIdentifier¶
- class mex.common.models.variable_group._BaseRuleSet(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]))¶
Bases:
_Stem,RuleSetBase class for sets of rules for a variable group item.
- additive: AdditiveVariableGroup¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariableGroup¶
- subtractive: SubtractiveVariableGroup¶
Module contents¶
These models implement the types defined by the mex-model in their various stages.
The current set of entity types includes:
AccessPlatform
Activity
BibliographicResource
Consent
ContactPoint
Distribution
Organization
OrganizationalUnit
Person
PrimarySource
Resource
Variable
VariableGroup
Each entity type T is modelled for the following use cases:
BaseT defines all fields according to mex-model except for provenance fields
ExtractedT defines an automatically extracted metadata item including provenance
MergedT defines the result of merging extracted items and rules into a single item
PreviewT defines a preview of a merged item without enforcing cardinality validation
AdditiveT defines a rule to add values to specific fields of a merged item
SubtractiveT defines a rule to subtract (or block) specific values for specific fields from contributing to a merged item
PreventiveT defines a rule to prevent (or block) specific primary sources from contributing to specific fields of a merged item
TRuleSet classes are used for CRUD operations on a set of three rules
TFilter defines how an entity filter specification should look like
TMapping defines how a raw-data to extracted item mapping should look like
Since these models for different use cases have a lot of overlapping attributes, we use a number of intermediate private classes to compose the public classes:
_Stem defines a static class attribute stemType, e.g. Person or PrimarySource, which is added to all intermediate and exported classes
_OptionalLists defines all fields typed as lists with an arity of 0-n
_RequiredLists defines all fields typed as lists with an arity of 1-n
_SparseLists re-defines all fields from _RequiredLists with an arity of 0-n
_OptionalValues defines all fields with optional values (arity of 0-1)
_RequiredValues defines all fields with required values (arity of 1)
_SparseValues re-defines all fields from _RequiredValues with an arity of 0-1
_VariadicValues re-defines all fields from _OptionalValues and _RequiredValues as list fields with an arity of 0-n
_BaseRuleSet bundles the additive, subtractive and preventive rules for one type
These private classes are used to compose the public classes like so:
BaseT: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues
ExtractedT: BaseT, ExtractedData
MergedT: BaseT, MergedItem
PreviewT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem
AdditiveT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule
SubtractiveT: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule
PreventiveT: all fields from BaseT re-typed as MergedPrimarySourceIdentifier
TRuleSetRequest: bundle of all three rules for one type used to create new rules
TRuleSetResponse: bundle of all three rules for one type including a stableTargetId
TFilter: a single field containing a list of filter rule definitions
TMapping: all BaseT fields re-typed as lists of mapping fields with setValues type
All models intended for developer consumption have two main classifying class variables: The frozen entityType field is added to classes to help with assigning the correct class when reading raw JSON entities. Simple duck-typing would not work, because some entity-types have overlapping attributes, like Person.email and ContactPoint.email. See: https://docs.pydantic.dev/latest/concepts/fields/#discriminator The frozen stemType class variable is added to classes to help with knowing which special-use-case classes are meant for the same type of items. E.g. ExtractedPerson, MergedPerson and PreventivePerson all share the same stemType of “Person”.
In addition to the classes themselves, mex.common.models also exposes various lists of models, lookups by class name and typing for unions of models.
- class mex.common.models.AccessPlatformFilter(*, entityType: Literal['AccessPlatformFilter'] = 'AccessPlatformFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for access platform items.
- entityType: Annotated[Literal['AccessPlatformFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AccessPlatformMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an access platform transformation.
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]¶
- description: list[MappingField[list[Text]]]¶
- endpointDescription: list[MappingField[Link | NoneType]]¶
- endpointType: list[MappingField[APIType | NoneType]]¶
- endpointURL: list[MappingField[Link | NoneType]]¶
- entityType: Annotated[Literal['AccessPlatformMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MappingField[list[Link]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- class mex.common.models.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform', supersededBy=None), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for activity items.
- entityType: Annotated[Literal['ActivityFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ActivityMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ActivityMapping'] = 'ActivityMapping', contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an activity transformation.
- abstract: list[MappingField[list[Text]]]¶
- activityType: list[MappingField[list[ActivityType]]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- documentation: list[MappingField[list[Link]]]¶
- end: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- entityType: Annotated[Literal['ActivityMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]]¶
- funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- fundingProgram: list[MappingField[list[str]]]¶
- involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]¶
- involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- shortName: list[MappingField[list[Text]]]¶
- start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- succeeds: list[MappingField[list[MergedActivityIdentifier]]]¶
- theme: list[MappingField[list[Theme]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity', supersededBy=None), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an activity item.
- entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity', supersededBy=None), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an activity item.
- entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedActivityIdentifier¶
- class mex.common.models.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform', supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged access platform items.
- entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity', supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged activity items.
- entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource', supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged bibliographic resource items.
- entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent', supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged consent items.
- entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint', supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged contact point items.
- entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution', supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged distribution items.
- entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization', supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged organization items.
- entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit', supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged organizational units.
- entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson', supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
_OptionalLists,AdditiveRuleRule to add values to merged person items.
- entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource', supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,AdditiveRuleRule to add values to merged primary source items.
- entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource', supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged resource items.
- entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveRule¶
Bases:
BaseModelBase rule to add values to merged items.
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable', supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged variable items.
- entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup', supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged variable group items.
- entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValues,_RequiredValuesAll fields for a valid access platform except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid activity except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid bibliographic resource except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues,_RequiredValuesAll fields for a valid consent except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseContactPoint(*, email: MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid contact point except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid distribution except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseFilter¶
Bases:
BaseModelBase class for filter implementations.
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)])¶
Bases:
BaseModelBase class for mapping implementations.
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseModel¶
Bases:
BaseModelCommon base class for all MEx model classes.
- classmethod _convert_list_to_non_list(field_name: str, value: list[Any]) Any¶
Convert a list value to a non-list value by unpacking it if possible.
- classmethod _convert_non_list_to_list(field_name: str, value: Any) list[Any] | None¶
Convert a non-list value to a list value by wrapping it in a list.
- classmethod _fix_value_listyness_for_field(field_name: str, value: Any) Any¶
Check actual and desired shape of a value and fix it if necessary.
- classmethod fix_listyness(data: Any, handler: ValidatorFunctionWrapHandler) Any¶
Adjust the listyness of to-be-parsed data to match the desired shape.
If that data is a Mapping and the model defines a list[T] field but the raw data contains just a value of type T, it will be wrapped into a list. If the raw data contains a literal None, but the list field is defined as required, we substitute an empty list.
If the model does not expect a list, but the raw data contains a list with no entries, it will be substituted with None. If the raw data contains exactly one entry, then it will be unpacked from the list. If it contains more than one entry however, an error is raised, because we would not know which to choose.
- Parameters:
data – Raw data or instance to be parsed
handler – Validator function wrap handler
- Returns:
data with fixed list shapes
- model_config = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: Literal['validation', 'serialization']='validation', *, union_format: Literal['any_of', 'primitive_type_array']='any_of') dict[str, Any]¶
Generates a JSON schema for a model class.
- Parameters:
by_alias – Whether to use attribute aliases or not.
ref_template – The reference template.
schema_generator – Overriding the logic used to generate the JSON schema
mode – The mode in which to generate the schema.
union_format – The format to use when combining schemas from unions together.
- Returns:
The JSON schema for the given model class.
- classmethod verify_computed_field_consistency(data: Any, handler: ValidatorFunctionWrapHandler) Any¶
Validate that parsed values for computed fields are consistent.
Parsing a dictionary with a value for a computed field that is consistent with what that field would have computed anyway is allowed. Omitting values for computed fields is perfectly valid as well. However, if the parsed value is different from the computed value, a validation error is raised.
- Parameters:
data – Raw data or instance to be parsed
handler – Validator function wrap handler
- Returns:
data with consistent computed fields.
- class mex.common.models.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid organization except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid organizational unit except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalListsAll fields for a valid person except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValuesAll fields for a valid primary source except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid resource except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid variable except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid variable group except for provenance.
- model_config = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for bibliographic resource items.
- entityType: Annotated[Literal['BibliographicResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BibliographicResourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a bibliographic resource transformation.
- abstract: list[MappingField[list[Text]]]¶
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- alternateIdentifier: list[MappingField[list[str]]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]]¶
- contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- distribution: list[MappingField[list[MergedDistributionIdentifier]]]¶
- doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]¶
- edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]]¶
- editor: list[MappingField[list[MergedPersonIdentifier]]]¶
- editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]]¶
- entityType: Annotated[Literal['BibliographicResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]¶
- issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- journal: list[MappingField[list[Text]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]¶
- publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]¶
- publicationYear: list[MappingField[Year | NoneType]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- repositoryURL: list[MappingField[Link | NoneType]]¶
- section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]¶
- subtitle: list[MappingField[list[Text]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- titleOfBook: list[MappingField[list[Text]]]¶
- titleOfSeries: list[MappingField[list[Text]]]¶
- volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- class mex.common.models.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for consent items.
- entityType: Annotated[Literal['ConsentFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ConsentMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ConsentMapping'] = 'ConsentMapping', hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a consent transformation.
- entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentType: list[MappingField[ConsentType | NoneType]]¶
- hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a consent item.
- entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent', supersededBy=None), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a consent item.
- entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedConsentIdentifier¶
- class mex.common.models.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for contact point items.
- entityType: Annotated[Literal['ContactPointFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ContactPointMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', email: MinLen(min_length=1)])¶
Bases:
_Stem,BaseMappingMapping for describing a contact point transformation.
- email: [^@ \\t\\r\\n]+$')])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- entityType: Annotated[Literal['ContactPointMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint', supersededBy=None), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedContactPointIdentifier¶
- class mex.common.models.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for distribution items.
- entityType: Annotated[Literal['DistributionFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.DistributionMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['DistributionMapping'] = 'DistributionMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a distribution transformation.
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]]¶
- accessURL: list[MappingField[list[Link]]]¶
- downloadURL: list[MappingField[list[Link]]]¶
- entityType: Annotated[Literal['DistributionMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- license: list[MappingField[License | NoneType]]¶
- mediaType: list[MappingField[MIMEType | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- class mex.common.models.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution', supersededBy=None), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform,ExtractedDataAn automatically extracted metadata item describing an access platform.
- entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity,ExtractedDataAn automatically extracted metadata set describing an activity.
- entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')¶
Bases:
BaseBibliographicResource,ExtractedDataAn automatically extracted metadata item describing a bibliographic resource.
- entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')¶
Bases:
BaseConsent,ExtractedDataAn automatically extracted metadata set describing a consent.
- entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')¶
Bases:
BaseContactPoint,ExtractedDataAn automatically extracted metadata set describing a contact point.
- entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedData(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])¶
Bases:
BaseModelBase model for all extracted item classes.
This class adds two important attributes for metadata provenance: hadPrimarySource and identifierInPrimarySource, which are used to uniquely identify an item in its original primary source. The attribute stableTargetId has to be set by each concrete subclass, like ExtractedPerson, because it needs to have the correct type, e.g. MergedPersonIdentifier.
This class also adds a validator to automatically set identifiers for provenance.
- _get_identifier(identifier_type: type[_ExtractedIdentifierT]) _ExtractedIdentifierT¶
Consult the identity provider to get the identifier for this item.
- Parameters:
identifier_type – ExtractedIdentifier-subclass to cast the identifier to
- Returns:
Identifier of the correct type
- _get_stable_target_id(identifier_type: type[_MergedIdentifierT]) _MergedIdentifierT¶
Consult the identity provider to get the stableTargetId for this item.
- Parameters:
identifier_type – MergedIdentifier-subclass to cast the identifier to
- Returns:
StableTargetId of the correct type
- hadPrimarySource: org/ns/prov#hadPrimarySource']}, frozen=True)]¶
- identifierInPrimarySource: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The identifier of the item used in the primary source.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])]¶
- model_config = {'extra': 'forbid', 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')¶
Bases:
BaseDistribution,ExtractedDataAn automatically extracted metadata set describing a distribution.
- entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization,ExtractedDataAn automatically extracted metadata set describing an organization.
- entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit,ExtractedDataAn automatically extracted metadata set describing an organizational unit.
- entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson,ExtractedDataAn automatically extracted metadata set describing a person.
- entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource,ExtractedDataAn automatically extracted metadata set describing a primary source.
- entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource,ExtractedDataAn automatically extracted metadata set describing a resource.
- entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable,ExtractedDataAn automatically extracted metadata set describing a variable.
- entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup,ExtractedDataAn automatically extracted metadata set describing a variable group.
- entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: 1/identifier']})]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, description='The identifier of the merged item that this extracted item belongs to.')]¶
- class mex.common.models.FilterField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, filterRules: Annotated[list[FilterRule], MinLen(min_length=1)], comment: str | None = None)¶
Bases:
BaseModelFilter definition for one field in the primary source.
- comment: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='comment')]¶
- examplesInPrimarySource: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='examplesInPrimarySource')]¶
- fieldInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='fieldInPrimarySource')]¶
- filterRules: Annotated[list[FilterRule], FieldInfo(annotation=NoneType, required=True, title='filterRules', metadata=[MinLen(min_length=1)])]¶
- locationInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='locationInPrimarySource')]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.FilterRule(*, forValues: list[str] | None = None, rule: str | None = None)¶
Bases:
BaseModelA single filter rule to apply.
- forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]¶
- class mex.common.models.ItemsContainer(*, items: list[_ContainerItemT])¶
Bases:
BaseModel,Generic[_ContainerItemT]Generic container that contains items.
- items: list[_ContainerItemT]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MappingField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, mappingRules: Annotated[list[MappingRule[TypeVar]], MinLen(min_length=1)], comment: str | None = None)¶
Bases:
BaseModel,Generic[_MappingRuleT]Generic mapping field model.
- comment: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='comment')]¶
- examplesInPrimarySource: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='examplesInPrimarySource')]¶
- fieldInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='fieldInPrimarySource')]¶
- locationInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='locationInPrimarySource')]¶
- mappingRules: Annotated[list[MappingRule[TypeVar]], FieldInfo(annotation=NoneType, required=True, title='mappingRules', metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MappingRule(*, forValues: list[str] | None = None, setValues: _ValueT | None = None, rule: str | None = None)¶
Bases:
BaseModel,Generic[_ValueT]Generic mapping rule model.
- forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]¶
- setValues: Annotated[_ValueT | None, FieldInfo(annotation=NoneType, required=True, title='setValues')]¶
- class mex.common.models.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier, supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
BaseAccessPlatform,MergedItemThe result of merging all extracted items and rules for an access platform.
- entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier, supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
BaseActivity,MergedItemThe result of merging all extracted items and rules for an activity.
- entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier, supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
BaseBibliographicResource,MergedItemThe result of merging all extracted items and rules for a bibliographic resource.
- entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier, supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
BaseConsent,MergedItemThe result of merging all extracted items and rules for a consent.
- entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier, supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
BaseContactPoint,MergedItemThe result of merging all extracted items and rules for a contact point.
- entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier, supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
BaseDistribution,MergedItemThe result of merging all extracted items and rules for a distribution.
- entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedItem¶
Bases:
BaseModelBase model for all merged item classes.
- model_config = {'extra': 'forbid', 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier, supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
BaseOrganization,MergedItemThe result of merging all extracted items and rules for an organization.
- entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier, supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
BaseOrganizationalUnit,MergedItemThe result of merging all extracted items and rules for an organizational unit.
- entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier, supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
BasePerson,MergedItemThe result of merging all extracted items and rules for a person.
- entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier, supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
BasePrimarySource,MergedItemThe result of merging all extracted items and rules for a primary source.
- entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier, supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
BaseResource,MergedItemThe result of merging all extracted items and rules for a resource.
- entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset']}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier, supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
BaseVariable,MergedItemThe result of merging all extracted items and rules for a variable.
- entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier, supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
BaseVariableGroup,MergedItemThe result of merging all extracted items and rules for a variable group.
- entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.'}, 'model_title_generator': <function <lambda>>, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for organization items.
- entityType: Annotated[Literal['OrganizationFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an organization transformation.
- alternativeName: list[MappingField[list[Text]]]¶
- entityType: Annotated[Literal['OrganizationMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]]¶
- gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]¶
- shortName: list[MappingField[list[Text]]]¶
- viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]¶
- wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]¶
- class mex.common.models.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization', supersededBy=None), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedOrganizationIdentifier¶
- class mex.common.models.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for organizational unit items.
- entityType: Annotated[Literal['OrganizationalUnitFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationalUnitMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing an organizational unit transformation.
- alternativeName: list[MappingField[list[Text]]]¶
- email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]¶
- entityType: Annotated[Literal['OrganizationalUnitMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]¶
- shortName: list[MappingField[list[Text]]]¶
- unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit', supersededBy=None), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedOrganizationalUnitIdentifier¶
- class mex.common.models.PaginatedItemsContainer(*, items: list[_ContainerItemT], total: int)¶
Bases:
BaseModel,Generic[_ContainerItemT]Generic container that contains items and has a total item count.
- items: list[_ContainerItemT]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- total: int¶
- class mex.common.models.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for person items.
- entityType: Annotated[Literal['PersonFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PersonMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PersonMapping'] = 'PersonMapping', affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a person transformation.
- affiliation: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]]¶
- entityType: Annotated[Literal['PersonMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]]¶
- fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]]¶
- givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]¶
- class mex.common.models.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a person item.
- entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson', supersededBy=None), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a person item.
- entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedPersonIdentifier¶
- class mex.common.models.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged access platform items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- endpointDescription: list[MergedPrimarySourceIdentifier]¶
- endpointType: list[MergedPrimarySourceIdentifier]¶
- endpointURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged activity items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- activityType: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- end: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MergedPrimarySourceIdentifier]¶
- funderOrCommissioner: list[MergedPrimarySourceIdentifier]¶
- fundingProgram: list[MergedPrimarySourceIdentifier]¶
- involvedPerson: list[MergedPrimarySourceIdentifier]¶
- involvedUnit: list[MergedPrimarySourceIdentifier]¶
- isPartOfActivity: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MergedPrimarySourceIdentifier]¶
- responsibleUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- start: list[MergedPrimarySourceIdentifier]¶
- succeeds: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged bibliographic resource items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- alternateIdentifier: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- bibliographicResourceType: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- edition: list[MergedPrimarySourceIdentifier]¶
- editor: list[MergedPrimarySourceIdentifier]¶
- editorOfSeries: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MergedPrimarySourceIdentifier]¶
- issue: list[MergedPrimarySourceIdentifier]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- journal: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MergedPrimarySourceIdentifier]¶
- publicationPlace: list[MergedPrimarySourceIdentifier]¶
- publicationYear: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- repositoryURL: list[MergedPrimarySourceIdentifier]¶
- section: list[MergedPrimarySourceIdentifier]¶
- subtitle: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- titleOfBook: list[MergedPrimarySourceIdentifier]¶
- titleOfSeries: list[MergedPrimarySourceIdentifier]¶
- volume: list[MergedPrimarySourceIdentifier]¶
- volumeOfSeries: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged consent items.
- entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[MergedPrimarySourceIdentifier]¶
- hasConsentType: list[MergedPrimarySourceIdentifier]¶
- hasDataSubject: list[MergedPrimarySourceIdentifier]¶
- isIndicatedAtTime: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged contact point items.
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged distribution items.
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accessService: list[MergedPrimarySourceIdentifier]¶
- accessURL: list[MergedPrimarySourceIdentifier]¶
- downloadURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- mediaType: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged organization items.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[MergedPrimarySourceIdentifier]¶
- gndId: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: list[MergedPrimarySourceIdentifier]¶
- rorId: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- viafId: list[MergedPrimarySourceIdentifier]¶
- wikidataId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged organizational units.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: list[MergedPrimarySourceIdentifier]¶
- parentUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- unitOf: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged person items.
- affiliation: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MergedPrimarySourceIdentifier]¶
- fullName: list[MergedPrimarySourceIdentifier]¶
- givenName: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- memberOf: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged primary source items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- version: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPurpose: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], provenance: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged resource items.
- accessPlatform: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accrualPeriodicity: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]¶
- conformsTo: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- contributor: list[MergedPrimarySourceIdentifier]¶
- created: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedPrimarySourceIdentifier]¶
- hasLegalBasis: list[MergedPrimarySourceIdentifier]¶
- hasPersonalData: list[MergedPrimarySourceIdentifier]¶
- hasPurpose: list[MergedPrimarySourceIdentifier]¶
- icd10code: list[MergedPrimarySourceIdentifier]¶
- instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]¶
- isPartOf: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- loincId: list[MergedPrimarySourceIdentifier]¶
- maxTypicalAge: list[MergedPrimarySourceIdentifier]¶
- meshId: list[MergedPrimarySourceIdentifier]¶
- method: list[MergedPrimarySourceIdentifier]¶
- methodDescription: list[MergedPrimarySourceIdentifier]¶
- minTypicalAge: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- populationCoverage: list[MergedPrimarySourceIdentifier]¶
- provenance: list[MergedPrimarySourceIdentifier]¶
- publication: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- qualityInformation: list[MergedPrimarySourceIdentifier]¶
- resourceCreationMethod: list[MergedPrimarySourceIdentifier]¶
- resourceTypeGeneral: list[MergedPrimarySourceIdentifier]¶
- resourceTypeSpecific: list[MergedPrimarySourceIdentifier]¶
- rights: list[MergedPrimarySourceIdentifier]¶
- sizeOfDataBasis: list[MergedPrimarySourceIdentifier]¶
- spatial: list[MergedPrimarySourceIdentifier]¶
- stateOfDataProcessing: list[MergedPrimarySourceIdentifier]¶
- temporal: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- wasGeneratedBy: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveRule¶
Bases:
BaseModelBase rule to prevent primary sources for fields of merged items.
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged variable items.
- belongsTo: list[MergedPrimarySourceIdentifier]¶
- codingSystem: list[MergedPrimarySourceIdentifier]¶
- dataType: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: list[MergedPrimarySourceIdentifier]¶
- valueSet: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,PreventiveRuleRule to prevent primary sources for fields of merged variable group items.
- containedBy: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier, supersededBy: MergedAccessPlatformIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for an access platform.
- entityType: Annotated[Literal['PreviewAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier, supersededBy: MergedActivityIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an activity.
- entityType: Annotated[Literal['PreviewActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier, supersededBy: MergedBibliographicResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a bibliographic resource.
- entityType: Annotated[Literal['PreviewBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier, supersededBy: MergedConsentIdentifier | None = None)¶
Bases:
_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a consent.
- entityType: Annotated[Literal['PreviewConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier, supersededBy: MergedContactPointIdentifier | None = None)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a contact point.
- entityType: Annotated[Literal['PreviewContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier, supersededBy: MergedDistributionIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a distribution.
- entityType: Annotated[Literal['PreviewDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier, supersededBy: MergedOrganizationIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an organization.
- entityType: Annotated[Literal['PreviewOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier, supersededBy: MergedOrganizationalUnitIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for an organizational unit.
- entityType: Annotated[Literal['PreviewOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier, supersededBy: MergedPersonIdentifier | None = None)¶
Bases:
_OptionalLists,PreviewItemPreview for merging all extracted items and rules for a person.
- entityType: Annotated[Literal['PreviewPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier, supersededBy: MergedPrimarySourceIdentifier | None = None)¶
Bases:
_OptionalLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a primary source.
- entityType: Annotated[Literal['PreviewPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier, supersededBy: MergedResourceIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a resource.
- entityType: Annotated[Literal['PreviewResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier, supersededBy: MergedVariableIdentifier | None = None)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a variable.
- entityType: Annotated[Literal['PreviewVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier, supersededBy: MergedVariableGroupIdentifier | None = None)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a variable group.
- entityType: Annotated[Literal['PreviewVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: 1/identifier']}, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- supersededBy: '})]¶
- class mex.common.models.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for primary source items.
- entityType: Annotated[Literal['PrimarySourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PrimarySourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a primary source transformation.
- alternativeTitle: list[MappingField[list[Text]]]¶
- contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]]¶
- description: list[MappingField[list[Text]]]¶
- documentation: list[MappingField[list[Link]]]¶
- entityType: Annotated[Literal['PrimarySourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MappingField[list[Link]]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]¶
- class mex.common.models.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource', supersededBy=None), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedPrimarySourceIdentifier¶
- class mex.common.models.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for resource items.
- entityType: Annotated[Literal['ResourceFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ResourceMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['ResourceMapping'] = 'ResourceMapping', accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a resource transformation.
- accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]]¶
- accessRestriction: Annotated[list[MappingField[AccessRestriction]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- accrualPeriodicity: list[MappingField[Frequency | NoneType]]¶
- alternativeTitle: list[MappingField[list[Text]]]¶
- anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]]¶
- conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]]¶
- contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- contributor: list[MappingField[list[MergedPersonIdentifier]]]¶
- created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- creator: list[MappingField[list[MergedPersonIdentifier]]]¶
- description: list[MappingField[list[Text]]]¶
- distribution: list[MappingField[list[MergedDistributionIdentifier]]]¶
- documentation: list[MappingField[list[Link]]]¶
- doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]]¶
- entityType: Annotated[Literal['ResourceMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- hasLegalBasis: list[MappingField[list[Text]]]¶
- hasPersonalData: list[MappingField[PersonalData | NoneType]]¶
- hasPurpose: list[MappingField[list[Text]]]¶
- icd10code: list[MappingField[list[str]]]¶
- instrumentToolOrApparatus: list[MappingField[list[Text]]]¶
- isPartOf: list[MappingField[list[MergedResourceIdentifier]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]¶
- maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]¶
- meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]¶
- method: list[MappingField[list[Text]]]¶
- methodDescription: list[MappingField[list[Text]]]¶
- minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- populationCoverage: list[MappingField[list[Text]]]¶
- provenance: list[MappingField[list[Text]]]¶
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- qualityInformation: list[MappingField[list[Text]]]¶
- resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]¶
- resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]¶
- resourceTypeSpecific: list[MappingField[list[Text]]]¶
- rights: list[MappingField[list[Text]]]¶
- sizeOfDataBasis: list[MappingField[str | NoneType]]¶
- spatial: list[MappingField[list[Text]]]¶
- stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]¶
- temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]¶
- theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]¶
- class mex.common.models.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource', supersededBy=None), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a resource item.
- entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource', supersededBy=None), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a resource item.
- entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedResourceIdentifier¶
- class mex.common.models.Status(*, status: str)¶
Bases:
BaseModelModel for system status responses.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: str¶
- class mex.common.models.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged access platform items.
- entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged activity items.
- entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged bibliographic resource items.
- entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues,SubtractiveRuleRule to subtract values from merged consent items.
- entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged contact point items.
- entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged distribution items.
- entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged organization items.
- entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged organizational units.
- entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists,SubtractiveRuleRule to subtract values from merged person items.
- entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged primary source items.
- entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged resource items.
- entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveRule¶
Bases:
BaseModelBase rule to subtract values from merged items.
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~typing.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged variable items.
- entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged variable group items.
- entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableFilter(*, entityType: Literal['VariableFilter'] = 'VariableFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for variable items.
- entityType: Annotated[Literal['VariableFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupFilter(*, entityType: Literal['VariableGroupFilter'] = 'VariableGroupFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,BaseFilterClass for defining filter rules for variable group items.
- entityType: Annotated[Literal['VariableGroupFilter'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- fields: Annotated[list[FilterField], FieldInfo(annotation=NoneType, required=True, title='fields')]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])¶
Bases:
_Stem,BaseMappingMapping for describing a variable group transformation.
- containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- entityType: Annotated[Literal['VariableGroupMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup', supersededBy=None), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableGroupIdentifier¶
- class mex.common.models.VariableMapping(*, hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], entityType: Literal['VariableMapping'] = 'VariableMapping', codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a variable transformation.
- belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]]¶
- codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]]¶
- dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]]¶
- description: list[MappingField[list[Text]]]¶
- entityType: Annotated[Literal['VariableMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]¶
- class mex.common.models.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable item.
- entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable', supersededBy=None), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable item.
- entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableIdentifier¶