Skip to content

Data Sources

DataSourcesFilters

Bases: BaseModel

Filter model for the Data Sources V3 endpoint (/v3/datasources).

Field names mirror the V3 query parameters exactly. V3 adds 8 new fields: collectedFromName, compatibilityId, compatibilityName, country, eoscdatasourcetype, jurisdiction, odLanguages, thematic.

Source code in src/aireloom/endpoints.py
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
class DataSourcesFilters(BaseModel):
    """Filter model for the Data Sources V3 endpoint (``/v3/datasources``).

    Field names mirror the V3 query parameters exactly. V3 adds 8 new fields:
    ``collectedFromName``, ``compatibilityId``, ``compatibilityName``, ``country``,
    ``eoscdatasourcetype``, ``jurisdiction``, ``odLanguages``, ``thematic``.
    """

    search: str | None = None
    officialName: str | None = None
    englishName: str | None = None
    legalShortName: str | None = None
    id: str | None = None
    pid: str | None = None
    subjects: list[str] | None = None
    dataSourceTypeName: str | None = None
    contentTypes: list[str] | None = None
    relOrganizationId: str | None = None
    relCommunityId: str | None = None
    relCollectedFromDatasourceId: str | None = None
    collectedFromName: str | None = None
    compatibilityId: str | None = None
    compatibilityName: str | None = None
    country: str | None = None
    eoscdatasourcetype: str | None = None
    jurisdiction: str | None = None
    odLanguages: str | None = None
    thematic: bool | None = None
    logicalOperator: Literal["AND", "OR", "NOT"] | None = None

    model_config = ConfigDict(extra="forbid")

collectedFromName = None class-attribute instance-attribute

compatibilityId = None class-attribute instance-attribute

compatibilityName = None class-attribute instance-attribute

contentTypes = None class-attribute instance-attribute

country = None class-attribute instance-attribute

dataSourceTypeName = None class-attribute instance-attribute

englishName = None class-attribute instance-attribute

eoscdatasourcetype = None class-attribute instance-attribute

id = None class-attribute instance-attribute

jurisdiction = None class-attribute instance-attribute

legalShortName = None class-attribute instance-attribute

logicalOperator = None class-attribute instance-attribute

model_config = ConfigDict(extra='forbid') class-attribute instance-attribute

odLanguages = None class-attribute instance-attribute

officialName = None class-attribute instance-attribute

pid = None class-attribute instance-attribute

relCollectedFromDatasourceId = None class-attribute instance-attribute

relCommunityId = None class-attribute instance-attribute

relOrganizationId = None class-attribute instance-attribute

search = None class-attribute instance-attribute

subjects = None class-attribute instance-attribute

thematic = None class-attribute instance-attribute

DataSourcesClient

Bases: StandardResourceClient

Client for the OpenAIRE Data Sources API endpoint.

Attributes:

Name Type Description
_entity_path str

The API path for data sources.

_entity_model type[DataSource]

Pydantic model for a single data source.

_search_response_model type[DataSourceResponse]

Pydantic model for the search response envelope.

Source code in src/aireloom/resources/data_sources_client.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class DataSourcesClient(StandardResourceClient):
    """Client for the OpenAIRE Data Sources API endpoint.

    Attributes:
        _entity_path (str): The API path for data sources.
        _entity_model (type[DataSource]): Pydantic model for a single data source.
        _search_response_model (type[DataSourceResponse]): Pydantic model for the
                                                            search response envelope.
    """

    _entity_path: str = DATA_SOURCES
    _entity_model: type[DataSource] = DataSource
    _search_response_model: type[DataSourceResponse] = DataSourceResponse
    _batch_fields: dict[str, str] = {
        "pid": "pid",
        "openaire_id": "id",
    }