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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.AccessPlatformMapping(*, entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- landingPage: list[MappingField[list[Link]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- class mex.common.models.access_platform.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.access_platform.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValues,_RequiredValuesAll fields for a valid access platform except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedAccessPlatformIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.access_platform.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
BaseAccessPlatform,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: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.access_platform.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,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: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.access_platform.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists,_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.activity module¶
- class mex.common.models.activity.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ActivityMapping(*, entityType: Literal['ActivityMapping'] = 'ActivityMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]¶
- involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- shortName: list[MappingField[list[Text]]]¶
- start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- succeeds: list[MappingField[list[MergedActivityIdentifier]]]¶
- theme: list[MappingField[list[Theme]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.activity.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedActivityIdentifier¶
- class mex.common.models.activity.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')¶
Bases:
_OptionalLists,_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid activity except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedActivityIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.activity.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)¶
Bases:
BaseActivity,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: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MergedPrimarySourceIdentifier]¶
- responsibleUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- start: list[MergedPrimarySourceIdentifier]¶
- succeeds: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.activity.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier)¶
Bases:
_OptionalLists,_SparseLists,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: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.activity.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists,_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.bibliographic_resource module¶
- class mex.common.models.bibliographic_resource.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid bibliographic resource except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceMapping(*, entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]¶
- issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- journal: list[MappingField[list[Text]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]¶
- publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]¶
- publicationYear: list[MappingField[Year | NoneType]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- repositoryURL: list[MappingField[Link | NoneType]]¶
- section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]¶
- subtitle: list[MappingField[list[Text]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- titleOfBook: list[MappingField[list[Text]]]¶
- titleOfSeries: list[MappingField[list[Text]]]¶
- volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetRequest(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource'), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetRequest'] = 'BibliographicResourceRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetResponse(*, additive: AdditiveBibliographicResource = AdditiveBibliographicResource(accessRestriction=None, doi=None, edition=None, issue=None, issued=None, license=None, pages=None, publicationPlace=None, publicationYear=None, section=None, volume=None, volumeOfSeries=None, creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], repositoryURL=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='AdditiveBibliographicResource'), subtractive: SubtractiveBibliographicResource = SubtractiveBibliographicResource(accessRestriction=[], doi=[], edition=[], issue=[], issued=[], license=[], pages=[], publicationPlace=[], publicationYear=[], repositoryURL=[], section=[], volume=[], volumeOfSeries=[], creator=[], title=[], abstract=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], distribution=[], editor=[], editorOfSeries=[], isbnIssn=[], journal=[], keyword=[], language=[], publisher=[], subtitle=[], titleOfBook=[], titleOfSeries=[], entityType='SubtractiveBibliographicResource'), preventive: PreventiveBibliographicResource = PreventiveBibliographicResource(entityType='PreventiveBibliographicResource', abstract=[], accessRestriction=[], alternateIdentifier=[], alternativeTitle=[], bibliographicResourceType=[], contributingUnit=[], creator=[], distribution=[], doi=[], edition=[], editor=[], editorOfSeries=[], isbnIssn=[], issue=[], issued=[], journal=[], keyword=[], language=[], license=[], pages=[], publicationPlace=[], publicationYear=[], publisher=[], repositoryURL=[], section=[], subtitle=[], title=[], titleOfBook=[], titleOfSeries=[], volume=[], volumeOfSeries=[]), entityType: Literal['BibliographicResourceRuleSetResponse'] = 'BibliographicResourceRuleSetResponse', stableTargetId: MergedBibliographicResourceIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedBibliographicResourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.bibliographic_resource.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
BaseBibliographicResource,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: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MergedPrimarySourceIdentifier]¶
- publicationPlace: list[MergedPrimarySourceIdentifier]¶
- publicationYear: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- repositoryURL: list[MergedPrimarySourceIdentifier]¶
- section: list[MergedPrimarySourceIdentifier]¶
- subtitle: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- titleOfBook: list[MergedPrimarySourceIdentifier]¶
- titleOfSeries: list[MergedPrimarySourceIdentifier]¶
- volume: list[MergedPrimarySourceIdentifier]¶
- volumeOfSeries: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.bibliographic_resource.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.bibliographic_resource.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.consent module¶
- class mex.common.models.consent.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')¶
Bases:
_OptionalValues,_SparseValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues,_RequiredValuesAll fields for a valid consent except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentMapping(*, entityType: Literal['ConsentMapping'] = 'ConsentMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a consent transformation.
- entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentType: list[MappingField[ConsentType | NoneType]]¶
- hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedConsentIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.consent.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)¶
Bases:
BaseConsent,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: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier)¶
Bases:
_OptionalValues,_SparseValues,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: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.consent.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.contact_point module¶
- class mex.common.models.contact_point.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')¶
Bases:
_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.BaseContactPoint(*, email: MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid contact point except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointMapping(*, entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], email: MinLen(min_length=1)])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedContactPointIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.contact_point.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
BaseContactPoint,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: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
_SparseLists,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: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.contact_point.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.distribution module¶
- class mex.common.models.distribution.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid distribution except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionMapping(*, entityType: Literal['DistributionMapping'] = 'DistributionMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- license: list[MappingField[License | NoneType]]¶
- mediaType: list[MappingField[MIMEType | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- class mex.common.models.distribution.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedDistributionIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.distribution.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
BaseDistribution,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: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.distribution.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.distribution.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.organization module¶
- class mex.common.models.organization.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid organization except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedOrganizationIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.organization.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
BaseOrganization,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: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.OrganizationMapping(*, entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])¶
Bases:
_Stem,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}$')])]]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]¶
- shortName: list[MappingField[list[Text]]]¶
- viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]¶
- wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]¶
- class mex.common.models.organization.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: list[MergedPrimarySourceIdentifier]¶
- rorId: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- viafId: list[MergedPrimarySourceIdentifier]¶
- wikidataId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organization.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
_OptionalLists,_SparseLists,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: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organization.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.organizational_unit module¶
- class mex.common.models.organizational_unit.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid organizational unit except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedOrganizationalUnitIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.organizational_unit.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
BaseOrganizationalUnit,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: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.OrganizationalUnitMapping(*, entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]¶
- shortName: list[MappingField[list[Text]]]¶
- unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: list[MergedPrimarySourceIdentifier]¶
- parentUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- unitOf: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organizational_unit.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,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: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.organizational_unit.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.person module¶
- class mex.common.models.person.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')¶
Bases:
_OptionalLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalListsAll fields for a valid person except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedPersonIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.person.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)¶
Bases:
BasePerson,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: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.PersonMapping(*, entityType: Literal['PersonMapping'] = 'PersonMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])¶
Bases:
_Stem,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'])]]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]¶
- class mex.common.models.person.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.person.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier)¶
Bases:
_OptionalLists,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: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.person.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.primary_source module¶
- class mex.common.models.primary_source.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')¶
Bases:
_OptionalLists,_OptionalValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValuesAll fields for a valid primary source except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedPrimarySourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.primary_source.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
BasePrimarySource,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: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- version: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.primary_source.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
_OptionalLists,_OptionalValues,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: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PrimarySourceMapping(*, entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- locatedAt: list[MappingField[list[Link]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]¶
- class mex.common.models.primary_source.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.primary_source.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.resource module¶
- class mex.common.models.resource.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid resource except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedResourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.resource.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)¶
Bases:
BaseResource,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: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPurpose: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], provenance: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MergedPrimarySourceIdentifier]¶
- populationCoverage: list[MergedPrimarySourceIdentifier]¶
- provenance: list[MergedPrimarySourceIdentifier]¶
- publication: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- qualityInformation: list[MergedPrimarySourceIdentifier]¶
- resourceCreationMethod: list[MergedPrimarySourceIdentifier]¶
- resourceTypeGeneral: list[MergedPrimarySourceIdentifier]¶
- resourceTypeSpecific: list[MergedPrimarySourceIdentifier]¶
- rights: list[MergedPrimarySourceIdentifier]¶
- sizeOfDataBasis: list[MergedPrimarySourceIdentifier]¶
- spatial: list[MergedPrimarySourceIdentifier]¶
- stateOfDataProcessing: list[MergedPrimarySourceIdentifier]¶
- temporal: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- wasGeneratedBy: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.resource.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,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: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ResourceMapping(*, entityType: Literal['ResourceMapping'] = 'ResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])¶
Bases:
_Stem,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]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasLegalBasis: list[MappingField[list[Text]]]¶
- hasPersonalData: list[MappingField[PersonalData | NoneType]]¶
- hasPurpose: list[MappingField[list[Text]]]¶
- icd10code: list[MappingField[list[str]]]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- instrumentToolOrApparatus: list[MappingField[list[Text]]]¶
- isPartOf: list[MappingField[list[MergedResourceIdentifier]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]¶
- maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]¶
- meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]¶
- method: list[MappingField[list[Text]]]¶
- methodDescription: list[MappingField[list[Text]]]¶
- minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- populationCoverage: list[MappingField[list[Text]]]¶
- provenance: list[MappingField[list[Text]]]¶
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- qualityInformation: list[MappingField[list[Text]]]¶
- resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]¶
- resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]¶
- resourceTypeSpecific: list[MappingField[list[Text]]]¶
- rights: list[MappingField[list[Text]]]¶
- sizeOfDataBasis: list[MappingField[str | NoneType]]¶
- spatial: list[MappingField[list[Text]]]¶
- stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]¶
- temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]¶
- theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]¶
- class mex.common.models.resource.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.resource.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.common.models.variable module¶
- class mex.common.models.variable.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid variable except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedVariableIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.variable.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)¶
Bases:
BaseVariable,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: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: list[MergedPrimarySourceIdentifier]¶
- valueSet: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.variable.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,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: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.VariableMapping(*, entityType: Literal['VariableMapping'] = 'VariableMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]¶
- class mex.common.models.variable.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableIdentifier¶
mex.common.models.variable_group module¶
- class mex.common.models.variable_group.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')¶
Bases:
_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid variable group except for provenance.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup,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']})]¶
Return the computed identifier for this extracted item.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedVariableGroupIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.variable_group.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
BaseVariableGroup,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: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
_SparseLists,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: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupMapping(*, entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.variable_group.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- stableTargetId: MergedVariableGroupIdentifier¶
Module contents¶
These models implement the types defined by the mex-model in their various stages.
The current set of entity types includes:
AccessPlatform
Activity
BibliographicResource
Consent
ContactPoint
Distribution
Organization
OrganizationalUnit
Person
PrimarySource
Resource
Variable
VariableGroup
Each entity type T is modelled for the following use cases:
BaseT defines all fields according to mex-model except for provenance fields
ExtractedT defines an automatically extracted metadata item including provenance
MergedT defines the result of merging extracted items and rules into a single item
PreviewT defines a preview of a merged item without enforcing cardinality validation
AdditiveT defines a rule to add values to specific fields of a merged item
SubtractiveT defines a rule to subtract (or block) specific values for specific fields from contributing to a merged item
PreventiveT defines a rule to prevent (or block) specific primary sources from contributing to specific fields of a merged item
TRuleSet classes are used for CRUD operations on a set of three rules
TFilter defines how an entity filter specification should look like
TMapping defines how a raw-data to extracted item mapping should look like
Since these models for different use cases have a lot of overlapping attributes, we use a number of intermediate private classes to compose the public classes:
_Stem defines a static class attribute stemType, e.g. Person or PrimarySource, which is added to all intermediate and exported classes
_OptionalLists defines all fields typed as lists with an arity of 0-n
_RequiredLists defines all fields typed as lists with an arity of 1-n
_SparseLists re-defines all fields from _RequiredLists with an arity of 0-n
_OptionalValues defines all fields with optional values (arity of 0-1)
_RequiredValues defines all fields with required values (arity of 1)
_SparseValues re-defines all fields from _RequiredValues with an arity of 0-1
_VariadicValues re-defines all fields from _OptionalValues and _RequiredValues as list fields with an arity of 0-n
_BaseRuleSet bundles the additive, subtractive and preventive rules for one type
These private classes are used to compose the public classes like so:
BaseT: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues
ExtractedT: BaseT, ExtractedData
MergedT: BaseT, MergedItem
PreviewT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, PreviewItem
AdditiveT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule
SubtractiveT: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule
PreventiveT: all fields from BaseT re-typed as MergedPrimarySourceIdentifier
TRuleSetRequest: bundle of all three rules for one type used to create new rules
TRuleSetResponse: bundle of all three rules for one type including a stableTargetId
TFilter: a single field containing a list of filter rule definitions
TMapping: all BaseT fields re-typed as lists of mapping fields with setValues type
All models intended for developer consumption have two main classifying class variables: The frozen entityType field is added to classes to help with assigning the correct class when reading raw JSON entities. Simple duck-typing would not work, because some entity-types have overlapping attributes, like Person.email and ContactPoint.email. See: https://docs.pydantic.dev/latest/concepts/fields/#discriminator The frozen stemType class variable is added to classes to help with knowing which special-use-case classes are meant for the same type of items. E.g. ExtractedPerson, MergedPerson and PreventivePerson all share the same stemType of “Person”.
In addition to the classes themselves, mex.common.models also exposes various lists of models, lookups by class name and typing for unions of models.
- class mex.common.models.AccessPlatformFilter(*, entityType: Literal['AccessPlatformFilter'] = 'AccessPlatformFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AccessPlatformMapping(*, entityType: Literal['AccessPlatformMapping'] = 'AccessPlatformMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], MinLen(min_length=1)], endpointDescription: list[MappingField[Link | NoneType]] = [], endpointType: list[MappingField[APIType | NoneType]] = [], endpointURL: list[MappingField[Link | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], landingPage: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- landingPage: list[MappingField[list[Link]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[list[MappingField[TechnicalAccessibility]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- class mex.common.models.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an access platform item.
- additive: AdditiveAccessPlatform¶
- entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveAccessPlatform¶
- subtractive: SubtractiveAccessPlatform¶
- class mex.common.models.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform = AdditiveAccessPlatform(technicalAccessibility=None, endpointDescription=None, endpointType=None, endpointURL=None, alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='AdditiveAccessPlatform'), subtractive: SubtractiveAccessPlatform = SubtractiveAccessPlatform(endpointDescription=[], endpointType=[], endpointURL=[], technicalAccessibility=[], alternativeTitle=[], contact=[], description=[], landingPage=[], title=[], unitInCharge=[], entityType='SubtractiveAccessPlatform'), preventive: PreventiveAccessPlatform = PreventiveAccessPlatform(entityType='PreventiveAccessPlatform', alternativeTitle=[], contact=[], description=[], endpointDescription=[], endpointType=[], endpointURL=[], landingPage=[], technicalAccessibility=[], title=[], unitInCharge=[]), entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an access platform item.
- additive: AdditiveAccessPlatform¶
- entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveAccessPlatform¶
- stableTargetId: MergedAccessPlatformIdentifier¶
- subtractive: SubtractiveAccessPlatform¶
- class mex.common.models.ActivityFilter(*, entityType: Literal['ActivityFilter'] = 'ActivityFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ActivityMapping(*, entityType: Literal['ActivityMapping'] = 'ActivityMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], activityType: list[MappingField[list[ActivityType]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], end: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], externalAssociate: list[MappingField[list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator]]]] = [], funderOrCommissioner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], fundingProgram: list[MappingField[list[str]]] = [], involvedPerson: list[MappingField[list[MergedPersonIdentifier]]] = [], involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], shortName: list[MappingField[list[Text]]] = [], start: list[MappingField[list[YearMonthDay | YearMonth | Year]]] = [], succeeds: list[MappingField[list[MergedActivityIdentifier]]] = [], theme: list[MappingField[list[Theme]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- involvedPerson: list[MappingField[list[MergedPersonIdentifier]]]¶
- involvedUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- isPartOfActivity: list[MappingField[list[MergedActivityIdentifier]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- responsibleUnit: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- shortName: list[MappingField[list[Text]]]¶
- start: list[MappingField[list[YearMonthDay | YearMonth | Year]]]¶
- succeeds: list[MappingField[list[MergedActivityIdentifier]]]¶
- theme: list[MappingField[list[Theme]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.ActivityRuleSetRequest(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an activity item.
- additive: AdditiveActivity¶
- entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveActivity¶
- subtractive: SubtractiveActivity¶
- class mex.common.models.ActivityRuleSetResponse(*, additive: AdditiveActivity = AdditiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='AdditiveActivity'), subtractive: SubtractiveActivity = SubtractiveActivity(contact=[], responsibleUnit=[], title=[], abstract=[], activityType=[], alternativeTitle=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], shortName=[], start=[], succeeds=[], theme=[], website=[], entityType='SubtractiveActivity'), preventive: PreventiveActivity = PreventiveActivity(entityType='PreventiveActivity', abstract=[], activityType=[], alternativeTitle=[], contact=[], documentation=[], end=[], externalAssociate=[], funderOrCommissioner=[], fundingProgram=[], involvedPerson=[], involvedUnit=[], isPartOfActivity=[], publication=[], responsibleUnit=[], shortName=[], start=[], succeeds=[], theme=[], title=[], website=[]), entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an activity item.
- additive: AdditiveActivity¶
- entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveActivity¶
- stableTargetId: MergedActivityIdentifier¶
- subtractive: SubtractiveActivity¶
- class mex.common.models.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged access platform items.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]¶
- endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]¶
- entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[TechnicalAccessibility | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged activity items.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: list[AnyContactIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: list[MergedOrganizationalUnitIdentifier]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged bibliographic resource items.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: AccessRestriction | None¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: VolumeOrIssueStr | None¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: PagesStr | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: SectionStr | None¶
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')¶
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)]¶
- hasConsentStatus: ConsentStatus | None¶
- hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: MergedPersonIdentifier | None¶
- isIndicatedAtTime: YearMonthDayTime | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AdditiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged contact point items.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged distribution items.
- accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,AdditiveRuleRule to add values to merged organization items.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged organizational units.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')¶
Bases:
_OptionalLists,AdditiveRuleRule to add values to merged person items.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- class mex.common.models.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')¶
Bases:
_OptionalLists,_OptionalValues,AdditiveRuleRule to add values to merged primary source items.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: VersionStr | None¶
- class mex.common.models.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,AdditiveRuleRule to add values to merged resource items.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: MaxTypicalAgeInt | None¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: MinTypicalAgeInt | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: str | None¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.AdditiveRule¶
Bases:
BaseModelBase rule to add values to merged items.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,AdditiveRuleRule to add values to merged variable items.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')¶
Bases:
_SparseLists,AdditiveRuleRule to add values to merged variable group items.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValues,_RequiredValuesAll fields for a valid access platform except for provenance.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]¶
- endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid activity except for provenance.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid bibliographic resource except for provenance.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: VolumeOrIssueStr | None¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: PagesStr | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: SectionStr | None¶
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues,_RequiredValuesAll fields for a valid consent except for provenance.
- hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]¶
- hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]¶
- isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseContactPoint(*, email: MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid contact point except for provenance.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid distribution except for provenance.
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.BaseFilter¶
Bases:
BaseModelBase class for filter implementations.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseMapping¶
Bases:
BaseModelBase class for mapping implementations.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BaseModel¶
Bases:
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: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation', *, union_format: ~typing.Literal['any_of', 'primitive_type_array'] = 'any_of') dict[str, Any]¶
Generates a JSON schema for a model class.
- Parameters:
by_alias – Whether to use attribute aliases or not.
ref_template – The reference template.
schema_generator – Overriding the logic used to generate the JSON schema
mode – The mode in which to generate the schema.
union_format – The format to use when combining schemas from unions together.
- Returns:
The JSON schema for the given model class.
- classmethod verify_computed_field_consistency(data: Any, handler: ValidatorFunctionWrapHandler) Any¶
Validate that parsed values for computed fields are consistent.
Parsing a dictionary with a value for a computed field that is consistent with what that field would have computed anyway is allowed. Omitting values for computed fields is perfectly valid as well. However, if the parsed value is different from the computed value, a validation error is raised.
- Parameters:
data – Raw data or instance to be parsed
handler – Validator function wrap handler
- Returns:
data with consistent computed fields.
- class mex.common.models.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists,_RequiredListsAll fields for a valid organization except for provenance.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid organizational unit except for provenance.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalListsAll fields for a valid person except for provenance.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- class mex.common.models.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists,_OptionalValuesAll fields for a valid primary source except for provenance.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: VersionStr | None¶
- class mex.common.models.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValues,_RequiredValuesAll fields for a valid resource except for provenance.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: DoiStr | None¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: MaxTypicalAgeInt | None¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: MinTypicalAgeInt | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: str | None¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists,_RequiredLists,_OptionalValuesAll fields for a valid variable except for provenance.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredListsAll fields for a valid variable group except for provenance.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BibliographicResourceFilter(*, entityType: Literal['BibliographicResourceFilter'] = 'BibliographicResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.BibliographicResourceMapping(*, entityType: Literal['BibliographicResourceMapping'] = 'BibliographicResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], edition: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | NoneType]] = [], issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]] = [], publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]] = [], publicationYear: list[MappingField[Year | NoneType]] = [], repositoryURL: list[MappingField[Link | NoneType]] = [], section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]] = [], volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]] = [], creator: Annotated[list[MappingField[list[MergedPersonIdentifier]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], abstract: list[MappingField[list[Text]]] = [], alternateIdentifier: list[MappingField[list[str]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], bibliographicResourceType: list[MappingField[list[BibliographicResourceType]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], editor: list[MappingField[list[MergedPersonIdentifier]]] = [], editorOfSeries: list[MappingField[list[MergedPersonIdentifier]]] = [], isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]] = [], journal: list[MappingField[list[Text]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], subtitle: list[MappingField[list[Text]]] = [], titleOfBook: list[MappingField[list[Text]]] = [], titleOfSeries: list[MappingField[list[Text]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isbnIssn: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]]]]¶
- issue: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- issued: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- journal: list[MappingField[list[Text]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | NoneType]]¶
- publicationPlace: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | NoneType]]¶
- publicationYear: list[MappingField[Year | NoneType]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- repositoryURL: list[MappingField[Link | NoneType]]¶
- section: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | NoneType]]¶
- subtitle: list[MappingField[list[Text]]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- titleOfBook: list[MappingField[list[Text]]]¶
- titleOfSeries: list[MappingField[list[Text]]]¶
- volume: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- volumeOfSeries: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | NoneType]]¶
- class mex.common.models.ConsentFilter(*, entityType: Literal['ConsentFilter'] = 'ConsentFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ConsentMapping(*, entityType: Literal['ConsentMapping'] = 'ConsentMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], MinLen(min_length=1)], hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], MinLen(min_length=1)], isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], MinLen(min_length=1)], hasConsentType: list[MappingField[ConsentType | NoneType]] = [])¶
Bases:
_Stem,BaseMappingMapping for describing a consent transformation.
- entityType: Annotated[Literal['ConsentMapping'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentStatus: Annotated[list[MappingField[ConsentStatus]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasConsentType: list[MappingField[ConsentType | NoneType]]¶
- hasDataSubject: Annotated[list[MappingField[MergedPersonIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isIndicatedAtTime: Annotated[list[MappingField[YearMonthDayTime]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ConsentRuleSetRequest(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a consent item.
- additive: AdditiveConsent¶
- entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveConsent¶
- subtractive: SubtractiveConsent¶
- class mex.common.models.ConsentRuleSetResponse(*, additive: AdditiveConsent = AdditiveConsent(hasConsentStatus=None, hasDataSubject=None, hasConsentType=None, isIndicatedAtTime=None, entityType='AdditiveConsent'), subtractive: SubtractiveConsent = SubtractiveConsent(hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[], entityType='SubtractiveConsent'), preventive: PreventiveConsent = PreventiveConsent(entityType='PreventiveConsent', hasConsentType=[], hasConsentStatus=[], hasDataSubject=[], isIndicatedAtTime=[]), entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a consent item.
- additive: AdditiveConsent¶
- entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveConsent¶
- stableTargetId: MergedConsentIdentifier¶
- subtractive: SubtractiveConsent¶
- class mex.common.models.ContactPointFilter(*, entityType: Literal['ContactPointFilter'] = 'ContactPointFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ContactPointMapping(*, entityType: Literal['ContactPointMapping'] = 'ContactPointMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], email: MinLen(min_length=1)])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a contact point item.
- additive: AdditiveContactPoint¶
- entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveContactPoint¶
- subtractive: SubtractiveContactPoint¶
- class mex.common.models.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint = AdditiveContactPoint(email=[], entityType='AdditiveContactPoint'), subtractive: SubtractiveContactPoint = SubtractiveContactPoint(email=[], entityType='SubtractiveContactPoint'), preventive: PreventiveContactPoint = PreventiveContactPoint(entityType='PreventiveContactPoint', email=[]), entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a contact point item.
- additive: AdditiveContactPoint¶
- entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveContactPoint¶
- stableTargetId: MergedContactPointIdentifier¶
- subtractive: SubtractiveContactPoint¶
- class mex.common.models.DistributionFilter(*, entityType: Literal['DistributionFilter'] = 'DistributionFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.DistributionMapping(*, entityType: Literal['DistributionMapping'] = 'DistributionMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], MinLen(min_length=1)], accessService: list[MappingField[MergedAccessPlatformIdentifier | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], mediaType: list[MappingField[MIMEType | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], accessURL: list[MappingField[list[Link]]] = [], downloadURL: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- issued: Annotated[list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- license: list[MappingField[License | NoneType]]¶
- mediaType: list[MappingField[MIMEType | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- class mex.common.models.DistributionRuleSetRequest(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a distribution item.
- additive: AdditiveDistribution¶
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveDistribution¶
- subtractive: SubtractiveDistribution¶
- class mex.common.models.DistributionRuleSetResponse(*, additive: AdditiveDistribution = AdditiveDistribution(accessRestriction=None, issued=None, accessService=None, license=None, mediaType=None, modified=None, title=[], accessURL=[], downloadURL=[], entityType='AdditiveDistribution'), subtractive: SubtractiveDistribution = SubtractiveDistribution(accessRestriction=[], accessService=[], issued=[], license=[], mediaType=[], modified=[], title=[], accessURL=[], downloadURL=[], entityType='SubtractiveDistribution'), preventive: PreventiveDistribution = PreventiveDistribution(entityType='PreventiveDistribution', accessRestriction=[], accessService=[], accessURL=[], downloadURL=[], issued=[], license=[], mediaType=[], modified=[], title=[]), entityType: Literal['DistributionRuleSetResponse'] = 'DistributionRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a distribution item.
- additive: AdditiveDistribution¶
- entityType: Annotated[Literal['DistributionRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveDistribution¶
- stableTargetId: MergedAccessPlatformIdentifier¶
- subtractive: SubtractiveDistribution¶
- class mex.common.models.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform,ExtractedDataAn automatically extracted metadata item describing an access platform.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]¶
- endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]¶
- entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedAccessPlatformIdentifier¶
Return the computed stableTargetId for this extracted item.
- technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity,ExtractedDataAn automatically extracted metadata set describing an activity.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- property stableTargetId: MergedActivityIdentifier¶
Return the computed stableTargetId for this extracted item.
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')¶
Bases:
BaseBibliographicResource,ExtractedDataAn automatically extracted metadata item describing a bibliographic resource.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: VolumeOrIssueStr | None¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: PagesStr | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: SectionStr | None¶
- property stableTargetId: MergedBibliographicResourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')¶
Bases:
BaseConsent,ExtractedDataAn automatically extracted metadata set describing a consent.
- entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]¶
- hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedConsentIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')¶
Bases:
BaseContactPoint,ExtractedDataAn automatically extracted metadata set describing a contact point.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]¶
- entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedContactPointIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.ExtractedData(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])¶
Bases:
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, examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')¶
Bases:
BaseDistribution,ExtractedDataAn automatically extracted metadata set describing a distribution.
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- property stableTargetId: MergedDistributionIdentifier¶
Return the computed stableTargetId for this extracted item.
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization,ExtractedDataAn automatically extracted metadata set describing an organization.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- property stableTargetId: MergedOrganizationIdentifier¶
Return the computed stableTargetId for this extracted item.
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit,ExtractedDataAn automatically extracted metadata set describing an organizational unit.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- property stableTargetId: MergedOrganizationalUnitIdentifier¶
Return the computed stableTargetId for this extracted item.
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson,ExtractedDataAn automatically extracted metadata set describing a person.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- property stableTargetId: MergedPersonIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource,ExtractedDataAn automatically extracted metadata set describing a primary source.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedPrimarySourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: VersionStr | None¶
- class mex.common.models.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource,ExtractedDataAn automatically extracted metadata set describing a resource.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hadPrimarySource: HadPrimarySource¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: MaxTypicalAgeInt | None¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: MinTypicalAgeInt | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: str | None¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- property stableTargetId: MergedResourceIdentifier¶
Return the computed stableTargetId for this extracted item.
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable,ExtractedDataAn automatically extracted metadata set describing a variable.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedVariableIdentifier¶
Return the computed stableTargetId for this extracted item.
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup,ExtractedDataAn automatically extracted metadata set describing a variable group.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: HadPrimarySource¶
- property identifier: 1/identifier']})]¶
Return the computed identifier for this extracted item.
- identifierInPrimarySource: IdentifierInPrimarySource¶
- label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property stableTargetId: MergedVariableGroupIdentifier¶
Return the computed stableTargetId for this extracted item.
- class mex.common.models.FilterField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, filterRules: Annotated[list[FilterRule], MinLen(min_length=1)], comment: str | None = None)¶
Bases:
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: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.FilterRule(*, forValues: list[str] | None = None, rule: str | None = None)¶
Bases:
BaseModelA single filter rule to apply.
- forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]¶
- class mex.common.models.ItemsContainer(*, items: list[_ContainerItemT])¶
Bases:
BaseModel,Generic[_ContainerItemT]Generic container that contains items.
- items: list[_ContainerItemT]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MappingField(*, fieldInPrimarySource: str | None = None, locationInPrimarySource: str | None = None, examplesInPrimarySource: list[str] | None = None, mappingRules: Annotated[list[MappingRule[_MappingRuleT]], MinLen(min_length=1)], comment: str | None = None)¶
Bases:
BaseModel,Generic[_MappingRuleT]Generic mapping field model.
- comment: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='comment')]¶
- examplesInPrimarySource: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='examplesInPrimarySource')]¶
- fieldInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='fieldInPrimarySource')]¶
- locationInPrimarySource: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='locationInPrimarySource')]¶
- mappingRules: Annotated[list[MappingRule[_MappingRuleT]], FieldInfo(annotation=NoneType, required=True, title='mappingRules', metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MappingRule(*, forValues: list[str] | None = None, setValues: _ValueT | None = None, rule: str | None = None)¶
Bases:
BaseModel,Generic[_ValueT]Generic mapping rule model.
- forValues: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=True, title='forValues')]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rule: Annotated[str | None, FieldInfo(annotation=NoneType, required=True, title='rule')]¶
- setValues: Annotated[_ValueT | None, FieldInfo(annotation=NoneType, required=True, title='setValues')]¶
- class mex.common.models.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
BaseAccessPlatform,MergedItemThe result of merging all extracted items and rules for an access platform.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]¶
- endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]¶
- entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A technical system or service that provides access to distributions or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#DataService'], 'title': 'Access Platform'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[TechnicalAccessibility, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)¶
Bases:
BaseActivity,MergedItemThe result of merging all extracted items and rules for an activity.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An activity carried out by RKI. This may be a research activity, such as a funded project, or a task that RKI performs under federal law. Activities provide useful context information for resources.', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E7_Activity', 'http://purl.org/dc/terms/Activity', 'http://www.w3.org/ns/prov#Activity'], 'title': 'Activity'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': 'http.//dcat-ap.de/def/dcatde/maintainer'})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
BaseBibliographicResource,MergedItemThe result of merging all extracted items and rules for a bibliographic resource.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: VolumeOrIssueStr | None¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A book, article, or other documentary resource.', 'sameAs': ['http://purl.org/dc/terms/BibliographicResource'], 'title': 'Bibliographic Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: PagesStr | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: SectionStr | None¶
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)¶
Bases:
BaseConsent,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)]¶
- hasConsentStatus: Annotated[ConsentStatus, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasConsentStatus']})]¶
- hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: Annotated[MergedPersonIdentifier, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasDataSubject']})]¶
- identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isIndicatedAtTime: Annotated[YearMonthDayTime, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#isIndicatedAtTime']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Consent of the Data Subject for specified process or activity.', 'sameAs': ['https://w3id.org/dpv#Consent'], 'title': 'Consent'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MergedContactPoint(*, email: MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
BaseContactPoint,MergedItemThe result of merging all extracted items and rules for a contact point.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']}, min_length=1)]¶
- entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A mail address, where a group of people has access to.', 'sameAs': ['https://schema.org/ContactPoint'], 'title': 'Contact Point'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[list[Text], MinLen(min_length=1)], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
BaseDistribution,MergedItemThe result of merging all extracted items and rules for a distribution.
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above) ([DCAT, 2020-02-04](https://www.w3.org/TR/2020/REC-vocab-dcat-2-20200204/)).', 'sameAs': ['http://www.w3.org/ns/dcat#Distribution'], 'title': 'Distribution'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.MergedItem¶
Bases:
BaseModelBase model for all merged item classes.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
BaseOrganization,MergedItemThe result of merging all extracted items and rules for an organization.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures ([The Organization Ontology, 2014-01-16](http://www.w3.org/TR/2014/REC-vocab-org-20140116/)).', 'sameAs': ['http://www.w3.org/ns/org#Organization', 'http://xmlns.com/foaf/0.1/Organization', 'http://www.w3.org/2006/vcard/ns#Organization', 'http://www.wikidata.org/entity/Q43229'], 'title': 'Organization'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
BaseOrganizationalUnit,MergedItemThe result of merging all extracted items and rules for an organizational unit.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'An Organization such as a department or support unit which is part of some larger Organization and only has full recognition within the context of that Organization. In particular the unit would not be regarded as a legal entity in its own right.', 'sameAs': ['http://www.w3.org/ns/org#OrganizationalUnit', 'http://www.w3.org/2006/vcard/ns#Group', 'http://www.cidoc-crm.org/cidoc-crm/E_74_Group'], 'title': 'Organizational Unit'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)¶
Bases:
BasePerson,MergedItemThe result of merging all extracted items and rules for a person.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A person ([FOAF, 2004-05-01](http://xmlns.com/foaf/0.1/)). This class comprises real persons who live or are assumed to have lived ([CIDOC CRM, version 7.1.1](https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html)).', 'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/E21_Person', 'http://xmlns.com/foaf/0.1/Person', 'http://www.w3.org/2006/vcard/ns#Individual'], 'title': 'Person'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- class mex.common.models.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
BasePrimarySource,MergedItemThe result of merging all extracted items and rules for a primary source.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A collection of information, that is managed and curated by an RKI unit and lists activities and/or resources.', 'sameAs': ['http://www.w3.org/ns/dcat#Catalog', 'http://www.w3.org/ns/prov#PrimarySource'], 'title': 'Primary Source'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: VersionStr | None¶
- class mex.common.models.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)¶
Bases:
BaseResource,MergedItemThe result of merging all extracted items and rules for a resource.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[AccessRestriction, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: MaxTypicalAgeInt | None¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: MinTypicalAgeInt | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'A defined piece of information or collection of information on Public Health, that has been generated as part of a (research) activity at the RKI or to comply with a (federal) law or regulation that applies to the RKI.', 'sameAs': ['http://www.w3.org/ns/dcat#Dataset'], 'title': 'Resource'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: str | None¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1, json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)¶
Bases:
BaseVariable,MergedItemThe result of merging all extracted items and rules for a variable.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- label: Annotated[list[LabelText], Field(min_length=1, json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': ' Variables are defined for the data-based evaluation of investigations (e.g. studies). A variable is characterized by its data type (e.g. integer, string, date) and value range. The variable can be either quantitative or qualitative, i.e. the value range can take numerical or categorical values.', 'title': 'Variable'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
BaseVariableGroup,MergedItemThe result of merging all extracted items and rules for a variable group.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1, json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- label: Annotated[list[Text], Field(min_length=1, json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'json_schema_extra': {'description': 'The grouping of variables according to a certain aspect, e.g. how the information is modelled in the primary source.', 'title': 'Variable Group'}, 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationFilter(*, entityType: Literal['OrganizationFilter'] = 'OrganizationFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationMapping(*, entityType: Literal['OrganizationMapping'] = 'OrganizationMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], officialName: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], geprisId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]]]] = [], gndId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]] = [], wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]] = [])¶
Bases:
_Stem,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}$')])]]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- rorId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]]]]¶
- shortName: list[MappingField[list[Text]]]¶
- viafId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]]]]¶
- wikidataId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]]]]¶
- class mex.common.models.OrganizationRuleSetRequest(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organization item.
- additive: AdditiveOrganization¶
- entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganization¶
- subtractive: SubtractiveOrganization¶
- class mex.common.models.OrganizationRuleSetResponse(*, additive: AdditiveOrganization = AdditiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='AdditiveOrganization'), subtractive: SubtractiveOrganization = SubtractiveOrganization(officialName=[], alternativeName=[], geprisId=[], gndId=[], isniId=[], rorId=[], shortName=[], viafId=[], wikidataId=[], entityType='SubtractiveOrganization'), preventive: PreventiveOrganization = PreventiveOrganization(entityType='PreventiveOrganization', alternativeName=[], geprisId=[], gndId=[], isniId=[], officialName=[], rorId=[], shortName=[], viafId=[], wikidataId=[]), entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organization item.
- additive: AdditiveOrganization¶
- entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganization¶
- stableTargetId: MergedOrganizationIdentifier¶
- subtractive: SubtractiveOrganization¶
- class mex.common.models.OrganizationalUnitFilter(*, entityType: Literal['OrganizationalUnitFilter'] = 'OrganizationalUnitFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.OrganizationalUnitMapping(*, entityType: Literal['OrganizationalUnitMapping'] = 'OrganizationalUnitMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]] = [], name: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], alternativeName: list[MappingField[list[Text]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], shortName: list[MappingField[list[Text]]] = [], unitOf: list[MappingField[list[MergedOrganizationIdentifier]]] = [], website: list[MappingField[list[Link]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- parentUnit: list[MappingField[MergedOrganizationalUnitIdentifier | NoneType]]¶
- shortName: list[MappingField[list[Text]]]¶
- unitOf: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- website: list[MappingField[list[Link]]]¶
- class mex.common.models.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update an organizational unit item.
- additive: AdditiveOrganizationalUnit¶
- entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganizationalUnit¶
- subtractive: SubtractiveOrganizationalUnit¶
- class mex.common.models.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit = AdditiveOrganizationalUnit(parentUnit=None, name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='AdditiveOrganizationalUnit'), subtractive: SubtractiveOrganizationalUnit = SubtractiveOrganizationalUnit(parentUnit=[], name=[], alternativeName=[], email=[], shortName=[], unitOf=[], website=[], entityType='SubtractiveOrganizationalUnit'), preventive: PreventiveOrganizationalUnit = PreventiveOrganizationalUnit(entityType='PreventiveOrganizationalUnit', alternativeName=[], email=[], name=[], parentUnit=[], shortName=[], unitOf=[], website=[]), entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve an organizational unit item.
- additive: AdditiveOrganizationalUnit¶
- entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveOrganizationalUnit¶
- stableTargetId: MergedOrganizationalUnitIdentifier¶
- subtractive: SubtractiveOrganizationalUnit¶
- class mex.common.models.PaginatedItemsContainer(*, items: list[_ContainerItemT], total: int)¶
Bases:
BaseModel,Generic[_ContainerItemT]Generic container that contains items and has a total item count.
- items: list[_ContainerItemT]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- total: int¶
- class mex.common.models.PersonFilter(*, entityType: Literal['PersonFilter'] = 'PersonFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PersonMapping(*, entityType: Literal['PersonMapping'] = 'PersonMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], affiliation: list[MappingField[list[MergedOrganizationIdentifier]]] = [], email: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]]]] = [], familyName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]]] = [], fullName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]]] = [], givenName: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]]] = [], isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]] = [], memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]] = [])¶
Bases:
_Stem,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'])]]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- isniId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]]]]¶
- memberOf: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]]]]¶
- class mex.common.models.PersonRuleSetRequest(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a person item.
- additive: AdditivePerson¶
- entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePerson¶
- subtractive: SubtractivePerson¶
- class mex.common.models.PersonRuleSetResponse(*, additive: AdditivePerson = AdditivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='AdditivePerson'), subtractive: SubtractivePerson = SubtractivePerson(affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[], entityType='SubtractivePerson'), preventive: PreventivePerson = PreventivePerson(entityType='PreventivePerson', affiliation=[], email=[], familyName=[], fullName=[], givenName=[], isniId=[], memberOf=[], orcidId=[]), entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a person item.
- additive: AdditivePerson¶
- entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePerson¶
- stableTargetId: MergedPersonIdentifier¶
- subtractive: SubtractivePerson¶
- class mex.common.models.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreviewAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewAccessPlatform'] = 'PreviewAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
_OptionalLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for an access platform.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointDescription: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointDescription']})]¶
- endpointType: Annotated[APIType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- endpointURL: Annotated[Link | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#endpointURL']})]¶
- entityType: Annotated[Literal['PreviewAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[TechnicalAccessibility | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.PreviewActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['PreviewActivity'] = 'PreviewActivity', identifier: MergedActivityIdentifier)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an activity.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: list[AnyContactIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- entityType: Annotated[Literal['PreviewActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: list[MergedOrganizationalUnitIdentifier]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.PreviewBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], repositoryURL: list[Link] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['PreviewBibliographicResource'] = 'PreviewBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a bibliographic resource.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: AccessRestriction | None¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- entityType: Annotated[Literal['PreviewBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: VolumeOrIssueStr | None¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: PagesStr | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publicationYear: Annotated[Year | None, Field(json_schema_extra={'sameAs': 'http://datacite.org/schema/kernel-4/publicationYear'})]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: SectionStr | None¶
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.PreviewConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, hasConsentType: ConsentType | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, entityType: Literal['PreviewConsent'] = 'PreviewConsent', identifier: MergedConsentIdentifier)¶
Bases:
_OptionalValues,_SparseValues,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)]¶
- hasConsentStatus: ConsentStatus | None¶
- hasConsentType: Annotated[ConsentType | None, Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: MergedPersonIdentifier | None¶
- identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isIndicatedAtTime: YearMonthDayTime | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreviewContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['PreviewContactPoint'] = 'PreviewContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a contact point.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['PreviewContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PreviewDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['PreviewDistribution'] = 'PreviewDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a distribution.
- accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[MergedAccessPlatformIdentifier | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- entityType: Annotated[Literal['PreviewDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- issued: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[MIMEType | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.PreviewOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['PreviewOrganization'] = 'PreviewOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
_OptionalLists,_SparseLists,PreviewItemPreview for merging all extracted items and rules for an organization.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- entityType: Annotated[Literal['PreviewOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.PreviewOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['PreviewOrganizationalUnit'] = 'PreviewOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for an organizational unit.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['PreviewOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.PreviewPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['PreviewPerson'] = 'PreviewPerson', identifier: MergedPersonIdentifier)¶
Bases:
_OptionalLists,PreviewItemPreview for merging all extracted items and rules for a person.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['PreviewPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- class mex.common.models.PreviewPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['PreviewPrimarySource'] = 'PreviewPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
_OptionalLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a primary source.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- entityType: Annotated[Literal['PreviewPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: VersionStr | None¶
- class mex.common.models.PreviewResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['PreviewResource'] = 'PreviewResource', identifier: MergedResourceIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,_SparseValues,PreviewItemPreview for merging all extracted items and rules for a resource.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[AccessRestriction | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[Frequency | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['PreviewResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[PersonalData | None, Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[License | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: MaxTypicalAgeInt | None¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: MinTypicalAgeInt | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: str | None¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[MergedActivityIdentifier | None, Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.PreviewVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['PreviewVariable'] = 'PreviewVariable', identifier: MergedVariableIdentifier)¶
Bases:
_OptionalLists,_SparseLists,_OptionalValues,PreviewItemPreview for merging all extracted items and rules for a variable.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[CodingSystemStr | None, Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[DataTypeStr | None, Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- entityType: Annotated[Literal['PreviewVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.PreviewVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['PreviewVariableGroup'] = 'PreviewVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
_SparseLists,PreviewItemPreview for merging all extracted items and rules for a variable group.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- entityType: Annotated[Literal['PreviewVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PrimarySourceFilter(*, entityType: Literal['PrimarySourceFilter'] = 'PrimarySourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.PrimarySourceMapping(*, entityType: Literal['PrimarySourceMapping'] = 'PrimarySourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], contact: list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]] = [], description: list[MappingField[list[Text]]] = [], documentation: list[MappingField[list[Link]]] = [], locatedAt: list[MappingField[list[Link]]] = [], title: list[MappingField[list[Text]]] = [], unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- locatedAt: list[MappingField[list[Link]]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: list[MappingField[list[Text]]]¶
- unitInCharge: list[MappingField[list[MergedOrganizationalUnitIdentifier]]]¶
- version: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | NoneType]]¶
- class mex.common.models.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a primary source item.
- additive: AdditivePrimarySource¶
- entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePrimarySource¶
- subtractive: SubtractivePrimarySource¶
- class mex.common.models.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource = AdditivePrimarySource(version=None, alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='AdditivePrimarySource'), subtractive: SubtractivePrimarySource = SubtractivePrimarySource(version=[], alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], entityType='SubtractivePrimarySource'), preventive: PreventivePrimarySource = PreventivePrimarySource(entityType='PreventivePrimarySource', alternativeTitle=[], contact=[], description=[], documentation=[], locatedAt=[], title=[], unitInCharge=[], version=[]), entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a primary source item.
- additive: AdditivePrimarySource¶
- entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventivePrimarySource¶
- stableTargetId: MergedPrimarySourceIdentifier¶
- subtractive: SubtractivePrimarySource¶
- class mex.common.models.ResourceFilter(*, entityType: Literal['ResourceFilter'] = 'ResourceFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.ResourceMapping(*, entityType: Literal['ResourceMapping'] = 'ResourceMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], accessRestriction: Annotated[list[MappingField[AccessRestriction]], MinLen(min_length=1)], accrualPeriodicity: list[MappingField[Frequency | NoneType]] = [], created: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], doi: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])] | NoneType]] = [], hasPersonalData: list[MappingField[PersonalData | NoneType]] = [], license: list[MappingField[License | NoneType]] = [], maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]] = [], minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]] = [], modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]] = [], sizeOfDataBasis: list[MappingField[str | NoneType]] = [], temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]] = [], wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]] = [], contact: Annotated[list[MappingField[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator]]]], MinLen(min_length=1)], theme: Annotated[list[MappingField[list[Theme]]], MinLen(min_length=1)], title: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)], unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], MinLen(min_length=1)], accessPlatform: list[MappingField[list[MergedAccessPlatformIdentifier]]] = [], alternativeTitle: list[MappingField[list[Text]]] = [], anonymizationPseudonymization: list[MappingField[list[AnonymizationPseudonymization]]] = [], conformsTo: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]]] = [], contributingUnit: list[MappingField[list[MergedOrganizationalUnitIdentifier]]] = [], contributor: list[MappingField[list[MergedPersonIdentifier]]] = [], creator: list[MappingField[list[MergedPersonIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], distribution: list[MappingField[list[MergedDistributionIdentifier]]] = [], documentation: list[MappingField[list[Link]]] = [], externalPartner: list[MappingField[list[MergedOrganizationIdentifier]]] = [], hasLegalBasis: list[MappingField[list[Text]]] = [], hasPurpose: list[MappingField[list[Text]]] = [], icd10code: list[MappingField[list[str]]] = [], instrumentToolOrApparatus: list[MappingField[list[Text]]] = [], isPartOf: list[MappingField[list[MergedResourceIdentifier]]] = [], keyword: list[MappingField[list[Text]]] = [], language: list[MappingField[list[Language]]] = [], loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]] = [], meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]] = [], method: list[MappingField[list[Text]]] = [], methodDescription: list[MappingField[list[Text]]] = [], populationCoverage: list[MappingField[list[Text]]] = [], provenance: list[MappingField[list[Text]]] = [], publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]] = [], publisher: list[MappingField[list[MergedOrganizationIdentifier]]] = [], qualityInformation: list[MappingField[list[Text]]] = [], resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]] = [], resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]] = [], resourceTypeSpecific: list[MappingField[list[Text]]] = [], rights: list[MappingField[list[Text]]] = [], spatial: list[MappingField[list[Text]]] = [], stateOfDataProcessing: list[MappingField[list[DataProcessingState]]] = [])¶
Bases:
_Stem,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]]]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- hasLegalBasis: list[MappingField[list[Text]]]¶
- hasPersonalData: list[MappingField[PersonalData | NoneType]]¶
- hasPurpose: list[MappingField[list[Text]]]¶
- icd10code: list[MappingField[list[str]]]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- instrumentToolOrApparatus: list[MappingField[list[Text]]]¶
- isPartOf: list[MappingField[list[MergedResourceIdentifier]]]¶
- keyword: list[MappingField[list[Text]]]¶
- language: list[MappingField[list[Language]]]¶
- license: list[MappingField[License | NoneType]]¶
- loincId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]]]]¶
- maxTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | NoneType]]¶
- meshId: list[~mex.common.models.base.mapping.MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]]]]¶
- method: list[MappingField[list[Text]]]¶
- methodDescription: list[MappingField[list[Text]]]¶
- minTypicalAge: list[MappingField[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | NoneType]]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | NoneType]]¶
- populationCoverage: list[MappingField[list[Text]]]¶
- provenance: list[MappingField[list[Text]]]¶
- publication: list[MappingField[list[MergedBibliographicResourceIdentifier]]]¶
- publisher: list[MappingField[list[MergedOrganizationIdentifier]]]¶
- qualityInformation: list[MappingField[list[Text]]]¶
- resourceCreationMethod: list[MappingField[list[ResourceCreationMethod]]]¶
- resourceTypeGeneral: list[MappingField[list[ResourceTypeGeneral]]]¶
- resourceTypeSpecific: list[MappingField[list[Text]]]¶
- rights: list[MappingField[list[Text]]]¶
- sizeOfDataBasis: list[MappingField[str | NoneType]]¶
- spatial: list[MappingField[list[Text]]]¶
- stateOfDataProcessing: list[MappingField[list[DataProcessingState]]]¶
- temporal: list[MappingField[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | NoneType]]¶
- theme: Annotated[list[MappingField[list[Theme]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- title: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- unitInCharge: Annotated[list[MappingField[list[MergedOrganizationalUnitIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- wasGeneratedBy: list[MappingField[MergedActivityIdentifier | NoneType]]¶
- class mex.common.models.ResourceRuleSetRequest(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a resource item.
- additive: AdditiveResource¶
- entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveResource¶
- subtractive: SubtractiveResource¶
- class mex.common.models.ResourceRuleSetResponse(*, additive: AdditiveResource = AdditiveResource(accessRestriction=None, accrualPeriodicity=None, created=None, doi=None, hasPersonalData=None, license=None, maxTypicalAge=None, minTypicalAge=None, modified=None, sizeOfDataBasis=None, temporal=None, wasGeneratedBy=None, contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='AdditiveResource'), subtractive: SubtractiveResource = SubtractiveResource(accessRestriction=[], accrualPeriodicity=[], created=[], doi=[], hasPersonalData=[], license=[], maxTypicalAge=[], minTypicalAge=[], modified=[], sizeOfDataBasis=[], temporal=[], wasGeneratedBy=[], contact=[], theme=[], title=[], unitInCharge=[], accessPlatform=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contributingUnit=[], contributor=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], loincId=[], meshId=[], method=[], methodDescription=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], spatial=[], stateOfDataProcessing=[], entityType='SubtractiveResource'), preventive: PreventiveResource = PreventiveResource(entityType='PreventiveResource', accessPlatform=[], accessRestriction=[], accrualPeriodicity=[], alternativeTitle=[], anonymizationPseudonymization=[], conformsTo=[], contact=[], contributingUnit=[], contributor=[], created=[], doi=[], creator=[], description=[], distribution=[], documentation=[], externalPartner=[], hasLegalBasis=[], hasPurpose=[], hasPersonalData=[], icd10code=[], instrumentToolOrApparatus=[], isPartOf=[], keyword=[], language=[], license=[], loincId=[], maxTypicalAge=[], meshId=[], method=[], methodDescription=[], minTypicalAge=[], modified=[], populationCoverage=[], provenance=[], publication=[], publisher=[], qualityInformation=[], resourceCreationMethod=[], resourceTypeGeneral=[], resourceTypeSpecific=[], rights=[], sizeOfDataBasis=[], spatial=[], stateOfDataProcessing=[], temporal=[], theme=[], title=[], unitInCharge=[], wasGeneratedBy=[]), entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a resource item.
- additive: AdditiveResource¶
- entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveResource¶
- stableTargetId: MergedResourceIdentifier¶
- subtractive: SubtractiveResource¶
- class mex.common.models.Status(*, status: str)¶
Bases:
BaseModelModel for system status responses.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: str¶
- class mex.common.models.SubtractiveAccessPlatform(*, endpointDescription: list[Link] = [], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged access platform items.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- endpointType: Annotated[list[APIType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#landingPage']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- technicalAccessibility: Annotated[list[TechnicalAccessibility], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- class mex.common.models.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged activity items.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- activityType: Annotated[list[ActivityType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: list[AnyContactIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- end: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P582']})]¶
- entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: Annotated[list[AnyExternalAssociateIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- funderOrCommissioner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://www.wikidata.org/entity/P8324'})]¶
- fundingProgram: list[str]¶
- involvedPerson: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- involvedUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- isPartOfActivity: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf', 'http://www.cidoc-crm.org/cidoc-crm/P9i_forms_part_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- responsibleUnit: list[MergedOrganizationalUnitIdentifier]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- start: Annotated[list[YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P580']})]¶
- succeeds: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P173_start_before_or_with_the_end_of']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged bibliographic resource items.
- abstract: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/abstract']})]¶
- accessRestriction: list[AccessRestriction]¶
- alternateIdentifier: Annotated[list[str], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- bibliographicResourceType: Annotated[list[BibliographicResourceType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: list[DoiStr]¶
- edition: list[EditionStr]¶
- editor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- editorOfSeries: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: Annotated[list[IsbnIssnStr], Field(json_schema_extra={'sameAs': ['http://datacite.org/schema/kernel-4/alternateIdentifier']})]¶
- issue: list[VolumeOrIssueStr]¶
- issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pages: list[PagesStr]¶
- publicationPlace: list[PublicationPlaceStr]¶
- publisher: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': 'http://purl.org/dc/terms/publisher'})]¶
- section: list[SectionStr]¶
- subtitle: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfBook: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- titleOfSeries: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/title']})]¶
- volume: list[VolumeOrIssueStr]¶
- volumeOfSeries: list[VolumeOrIssueStr]¶
- class mex.common.models.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues,SubtractiveRuleRule to subtract values from merged consent items.
- entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[ConsentStatus]¶
- hasConsentType: Annotated[list[ConsentType], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- hasDataSubject: list[MergedPersonIdentifier]¶
- isIndicatedAtTime: list[YearMonthDayTime]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveContactPoint(*, email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged contact point items.
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], accessService: list[MergedAccessPlatformIdentifier] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], mediaType: list[MIMEType] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Text] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged distribution items.
- accessRestriction: Annotated[list[AccessRestriction], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accessService: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessURL']})]¶
- downloadURL: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#downloadURL']})]¶
- entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/issued']})]¶
- license: Annotated[list[License], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- mediaType: Annotated[list[MIMEType], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#mediaType', 'http://purl.org/dc/terms/format']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- class mex.common.models.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179', 'https://gepris.dfg.de/gepris/institution/10293', 'https://gepris.dfg.de/gepris/institution/21091092'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4', 'https://d-nb.info/gnd/4017909-6', 'https://d-nb.info/gnd/4603236-8'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744', 'https://isni.org/isni/0000000417918889', 'https://isni.org/isni/0000000459040795'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77', 'https://ror.org/00s9v1h75', 'https://ror.org/04t3en479'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639', 'https://viaf.org/viaf/137080884', 'https://viaf.org/viaf/122203699'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041', 'http://www.wikidata.org/entity/Q918501', 'http://www.wikidata.org/entity/Q491566'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists,_SparseLists,SubtractiveRuleRule to subtract values from merged organization items.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: Annotated[list[GeprisIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P4871']})]¶
- gndId: Annotated[list[GndIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P227']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- officialName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1448']})]¶
- rorId: Annotated[list[RorIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P6782']})]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- viafId: Annotated[list[ViafIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P214']})]¶
- wikidataId: list[WikidataIdStr]¶
- class mex.common.models.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged organizational units.
- alternativeName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: Annotated[list[Text], Field(json_schema_extra={'sameAs': 'http://xmlns.com/foaf/0.1/name'})]¶
- parentUnit: list[MergedOrganizationalUnitIdentifier]¶
- shortName: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P1813']})]¶
- unitOf: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/org#unitOf']})]¶
- website: Annotated[list[Link], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P856', 'http://www.w3.org/2006/vcard/ns#hasUrl', 'http://xmlns.com/foaf/0.1/homepage']})]¶
- class mex.common.models.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['info@rki.de'], json_schema_extra={'format': 'email'}, metadata=[_PydanticGeneralMetadata(pattern='^[^@ \\t\\r\\n]+@[^@ \\t\\r\\n]+\\.[^@ \\t\\r\\n]+$')])]] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000019240398', 'https://isni.org/isni/0000000453907343', 'https://isni.org/isni/0000000038086111'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X', 'https://orcid.org/0000-0003-2300-3928', 'https://orcid.org/0000-0002-1335-4022'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists,SubtractiveRuleRule to subtract values from merged person items.
- affiliation: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['https://schema.org/affiliation', 'http://www.wikidata.org/entity/P1416']})]¶
- email: Annotated[list[EmailStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2006/vcard/ns#hasEmail', 'https://schema.org/email']})]¶
- entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: Annotated[list[FamilyNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/familyName', 'https://schema.org/familyName']})]¶
- fullName: Annotated[list[FullNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/name']})]¶
- givenName: Annotated[list[GivenNameStr], Field(json_schema_extra={'sameAs': ['http://xmlns.com/foaf/0.1/givenName', 'https://schema.org/givenName']})]¶
- isniId: Annotated[list[IsniIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P213']})]¶
- memberOf: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://www.cidoc-crm.org/cidoc-crm/P107i_is_current_or_former_member_of']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- orcidId: Annotated[list[OrcidIdStr], Field(json_schema_extra={'sameAs': ['http://www.wikidata.org/entity/P496']})]¶
- class mex.common.models.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')¶
Bases:
_OptionalLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged primary source items.
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- version: list[VersionStr]¶
- class mex.common.models.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^https?://(?:dx\\.)?doi\\.org/[0-9]{2}\\.[0-9]{4,9}[-_.;()/:A-Za-z0-9]{0,256}$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], hasPurpose: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5', 'https://loinc.org/96766-1'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc\\.org/[-A-Za-z0-9]{2,64}$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604', 'http://id.nlm.nih.gov/mesh/T025130', 'http://id.nlm.nih.gov/mesh/D007717'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], provenance: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged resource items.
- accessPlatform: Annotated[list[MergedAccessPlatformIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#accessService']})]¶
- accessRestriction: Annotated[list[AccessRestriction], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accessRights']})]¶
- accrualPeriodicity: Annotated[list[Frequency], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/accrualPeriodicity']})]¶
- alternativeTitle: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/alternative']})]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: Annotated[list[ConformsToStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo']})]¶
- contact: Annotated[list[AnyContactIdentifier], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#contactPoint']})]¶
- contributingUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- contributor: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/contributor']})]¶
- created: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/created']})]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/creator']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- distribution: list[MergedDistributionIdentifier]¶
- documentation: Annotated[list[Link], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- doi: list[DoiStr]¶
- entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: Annotated[list[MergedOrganizationIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/contributor']})]¶
- hasLegalBasis: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasLegalBasis']})]¶
- hasPersonalData: Annotated[list[PersonalData], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPersonalData']})]¶
- hasPurpose: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['https://w3id.org/dpv#hasPurpose']})]¶
- icd10code: list[str]¶
- isPartOf: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isPartOf']})]¶
- keyword: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#keyword']})]¶
- language: Annotated[list[Language], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/language']})]¶
- license: Annotated[list[License], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/license']})]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: list[MaxTypicalAgeInt]¶
- meshId: list[MeshIdStr]¶
- methodDescription: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/description']})]¶
- minTypicalAge: list[MinTypicalAgeInt]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- modified: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/modified']})]¶
- provenance: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/provenance']})]¶
- publication: Annotated[list[MergedBibliographicResourceIdentifier], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/isReferencedBy']})]¶
- publisher: list[MergedOrganizationIdentifier]¶
- qualityInformation: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dqv#hasQualityAnnotation']})]¶
- resourceCreationMethod: Annotated[list[ResourceCreationMethod], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeGeneral: Annotated[list[ResourceTypeGeneral], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- resourceTypeSpecific: Annotated[list[Text], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/type']})]¶
- rights: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/rights']})]¶
- sizeOfDataBasis: list[str]¶
- spatial: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/spatial']})]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: Annotated[list[YearMonthDayTime | YearMonthDay | YearMonth | Year | TemporalStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/temporal']})]¶
- theme: Annotated[list[Theme], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/dcat#theme']})]¶
- title: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title']})]¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(json_schema_extra={'sameAs': ['http://dcat-ap.de/def/dcatde/maintainer']})]¶
- wasGeneratedBy: Annotated[list[MergedActivityIdentifier], Field(json_schema_extra={'sameAs': 'http://www.w3.org/ns/prov#wasGeneratedBy'})]¶
- class mex.common.models.SubtractiveRule¶
Bases:
BaseModelBase rule to subtract values from merged items.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists,_SparseLists,_VariadicValues,SubtractiveRuleRule to subtract values from merged variable items.
- belongsTo: Annotated[list[MergedVariableGroupIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- codingSystem: Annotated[list[CodingSystemStr], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/conformsTo', 'https://schema.org/codingSystem']})]¶
- dataType: Annotated[list[DataTypeStr], Field(json_schema_extra={'sameAs': ['http://www.w3.org/ns/csvw#datatype']})]¶
- description: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/description']})]¶
- entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[LabelText], Field(json_schema_extra={'sameAs': ['http://purl.org/dc/terms/title', 'http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- valueSet: list[ValueSetStr]¶
- class mex.common.models.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists,SubtractiveRuleRule to subtract values from merged variable group items.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(json_schema_extra={'subPropertyOf': ['http://purl.org/dc/terms/isPartOf']})]¶
- entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: Annotated[list[Text], Field(json_schema_extra={'sameAs': ['http://www.w3.org/2000/01/rdf-schema#label']})]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableFilter(*, entityType: Literal['VariableFilter'] = 'VariableFilter', fields: list[FilterField] = [])¶
Bases:
_Stem,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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_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: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupMapping(*, entityType: Literal['VariableGroupMapping'] = 'VariableGroupMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], containedBy: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], label: Annotated[list[MappingField[list[Text]]], MinLen(min_length=1)])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- label: Annotated[list[MappingField[list[Text]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class mex.common.models.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable group item.
- additive: AdditiveVariableGroup¶
- entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariableGroup¶
- subtractive: SubtractiveVariableGroup¶
- class mex.common.models.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup = AdditiveVariableGroup(containedBy=[], label=[], entityType='AdditiveVariableGroup'), subtractive: SubtractiveVariableGroup = SubtractiveVariableGroup(containedBy=[], label=[], entityType='SubtractiveVariableGroup'), preventive: PreventiveVariableGroup = PreventiveVariableGroup(entityType='PreventiveVariableGroup', containedBy=[], label=[]), entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable group item.
- additive: AdditiveVariableGroup¶
- entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariableGroup¶
- stableTargetId: MergedVariableGroupIdentifier¶
- subtractive: SubtractiveVariableGroup¶
- class mex.common.models.VariableMapping(*, entityType: Literal['VariableMapping'] = 'VariableMapping', hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], MinLen(min_length=1)], identifierInPrimarySource: Annotated[list[MappingField[str]], MinLen(min_length=1)], codingSystem: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | NoneType]] = [], dataType: list[MappingField[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | NoneType]] = [], label: MinLen(min_length=1)], usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], MinLen(min_length=1)], belongsTo: list[MappingField[list[MergedVariableGroupIdentifier]]] = [], description: list[MappingField[list[Text]]] = [], valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]] = [])¶
Bases:
_Stem,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)]¶
- hadPrimarySource: Annotated[list[MappingField[MergedPrimarySourceIdentifier]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- identifierInPrimarySource: Annotated[list[MappingField[str]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- label: MappingField[list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usedIn: Annotated[list[MappingField[list[MergedResourceIdentifier]]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1)])]¶
- valueSet: list[MappingField[list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]]]¶
- class mex.common.models.VariableRuleSetRequest(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_BaseRuleSetSet of rules to create or update a variable item.
- additive: AdditiveVariable¶
- entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariable¶
- subtractive: SubtractiveVariable¶
- class mex.common.models.VariableRuleSetResponse(*, additive: AdditiveVariable = AdditiveVariable(codingSystem=None, dataType=None, label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='AdditiveVariable'), subtractive: SubtractiveVariable = SubtractiveVariable(codingSystem=[], dataType=[], label=[], usedIn=[], belongsTo=[], description=[], valueSet=[], entityType='SubtractiveVariable'), preventive: PreventiveVariable = PreventiveVariable(entityType='PreventiveVariable', belongsTo=[], codingSystem=[], dataType=[], description=[], label=[], usedIn=[], valueSet=[]), entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_BaseRuleSetSet of rules to retrieve a variable item.
- additive: AdditiveVariable¶
- entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- preventive: PreventiveVariable¶
- stableTargetId: MergedVariableIdentifier¶
- subtractive: SubtractiveVariable¶