entryscape 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. entryscape/__init__.py +219 -0
  2. entryscape/api/__init__.py +26 -0
  3. entryscape/api/app_token_api.py +835 -0
  4. entryscape/api/auth_api.py +965 -0
  5. entryscape/api/catalog_api.py +4473 -0
  6. entryscape/api/contact_api.py +3135 -0
  7. entryscape/api/dataservice_api.py +3135 -0
  8. entryscape/api/dataset_api.py +3804 -0
  9. entryscape/api/distribution_api.py +3135 -0
  10. entryscape/api/document_api.py +2740 -0
  11. entryscape/api/idea_api.py +2740 -0
  12. entryscape/api/job_api.py +360 -0
  13. entryscape/api/model_api.py +2446 -0
  14. entryscape/api/model_class_api.py +2611 -0
  15. entryscape/api/model_diagram_api.py +2611 -0
  16. entryscape/api/model_field_api.py +2611 -0
  17. entryscape/api/model_form_api.py +2611 -0
  18. entryscape/api/model_namespace_api.py +2611 -0
  19. entryscape/api/model_property_api.py +2611 -0
  20. entryscape/api/organization_api.py +3135 -0
  21. entryscape/api/search_api.py +1513 -0
  22. entryscape/api/showcase_api.py +2740 -0
  23. entryscape/api/suggestion_api.py +2740 -0
  24. entryscape/api/terminology_api.py +1726 -0
  25. entryscape/api/upload_api.py +814 -0
  26. entryscape/api_client.py +763 -0
  27. entryscape/api_response.py +20 -0
  28. entryscape/configuration.py +673 -0
  29. entryscape/exceptions.py +222 -0
  30. entryscape/models/__init__.py +71 -0
  31. entryscape/models/app_token.py +156 -0
  32. entryscape/models/app_token_create_request.py +98 -0
  33. entryscape/models/app_token_create_response.py +169 -0
  34. entryscape/models/app_token_status.py +35 -0
  35. entryscape/models/app_token_verify_request.py +109 -0
  36. entryscape/models/entity_list_item.py +175 -0
  37. entryscape/models/entity_list_response.py +139 -0
  38. entryscape/models/entity_reference.py +189 -0
  39. entryscape/models/entity_type.py +57 -0
  40. entryscape/models/error.py +135 -0
  41. entryscape/models/facet_field.py +115 -0
  42. entryscape/models/facet_field_values_inner.py +100 -0
  43. entryscape/models/facet_list.py +113 -0
  44. entryscape/models/facet_list_available_inner.py +107 -0
  45. entryscape/models/job_response.py +112 -0
  46. entryscape/models/job_status.py +189 -0
  47. entryscape/models/job_status_progress.py +100 -0
  48. entryscape/models/job_status_value.py +37 -0
  49. entryscape/models/job_type.py +37 -0
  50. entryscape/models/list_catalogs_entry_type_parameter.py +37 -0
  51. entryscape/models/list_catalogs_graph_type_parameter.py +44 -0
  52. entryscape/models/list_catalogs_resource_type_parameter.py +37 -0
  53. entryscape/models/login_request.py +108 -0
  54. entryscape/models/login_response.py +115 -0
  55. entryscape/models/metadata_format.py +38 -0
  56. entryscape/models/metadata_request.py +99 -0
  57. entryscape/models/parent_reference.py +130 -0
  58. entryscape/models/search_request.py +158 -0
  59. entryscape/models/search_request_filters.py +144 -0
  60. entryscape/models/search_request_filters_graph_type.py +44 -0
  61. entryscape/models/search_request_filters_resource_type.py +37 -0
  62. entryscape/models/search_request_sort.py +38 -0
  63. entryscape/models/search_request_sort_order.py +35 -0
  64. entryscape/models/search_response.py +175 -0
  65. entryscape/models/search_result.py +175 -0
  66. entryscape/models/search_result_graph_type.py +44 -0
  67. entryscape/models/search_result_resource_type.py +37 -0
  68. entryscape/models/search_sort_order_parameter.py +35 -0
  69. entryscape/models/terminology_import_mode.py +35 -0
  70. entryscape/models/validation_profile.py +36 -0
  71. entryscape/models/validation_response.py +149 -0
  72. entryscape/models/validation_result.py +162 -0
  73. entryscape/models/validation_severity.py +36 -0
  74. entryscape/models/validation_summary.py +122 -0
  75. entryscape/models/whoami_response.py +104 -0
  76. entryscape/py.typed +0 -0
  77. entryscape/rest.py +210 -0
  78. entryscape-1.3.0.dist-info/METADATA +696 -0
  79. entryscape-1.3.0.dist-info/RECORD +82 -0
  80. entryscape-1.3.0.dist-info/WHEEL +5 -0
  81. entryscape-1.3.0.dist-info/licenses/LICENSE.txt +165 -0
  82. entryscape-1.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,4473 @@
1
+ """
2
+ EntryScape API
3
+
4
+ This API provides structured access to EntryScape data following DCAT-AP standards. All entity endpoints follow a consistent pattern: - GET /{entity} - List all entities - POST /{entity} - Create a new entity (DCAT types only) - GET /{entity}/{context_id}/{entry_id} - Get entity reference info - DELETE /{entity}/{context_id}/{entry_id} - Delete an entity (DCAT types only) - GET /{entity}/{context_id}/{entry_id}/metadata - Get raw RDF metadata - PUT /{entity}/{context_id}/{entry_id}/metadata - Replace raw RDF metadata (JSON-LD, Turtle, RDF/XML, or N-Triples passthrough) ## Reading and consistency Reads of a single entity — `GET /{entity}/{context_id}/{entry_id}` and its `/metadata` — go straight to the store and always reflect the latest write. Lists and search do not. They are answered from a search index that is updated asynchronously, so for a short interval after a write: - an entry that was just created may be missing from the list it belongs to, while reading it by id already works; - an entry that was just deleted may still appear; - `results` counts what the index holds, not what the store holds. Write a client that tolerates this: after creating an entry, use the id the create returned rather than searching for what you just wrote. `results` is also an upper bound rather than an exact count when the caller cannot read every hit (see the field's own description). Separately, responses are cached for 15 minutes by default, which is a second and unrelated source of staleness. A write invalidates the cache entries it affects, but a read that lands in the indexing gap can cache a list that does not yet show it. ## Authentication Most endpoints require an authenticated session. Reading public data works without authentication, while creating, updating, and deleting entities requires a valid user session. 1. **Log in** with `POST /auth/login`, supplying an EntryStore username and password. The response returns an `auth_token`. 2. **Send the token** on subsequent requests via the `X-Auth-Token` header. This is the recommended method for SDK and programmatic access. Browser clients can instead rely on the `auth_token` cookie, which the server sets automatically on login (`SameSite=Lax; Secure`). 3. **Inspect the session** with `GET /auth/whoami`, which returns the current user or an anonymous/guest identity when no valid token is supplied. 4. **Log out** with `POST /auth/logout` to invalidate the token and clear the cookie. ### Writes and CSRF Send the token as the `X-Auth-Token` **header** and there is nothing else to do: creates, updates and deletes work as they are, which is how the SDKs and the MCP server are built. The `auth_token` cookie is different. A cookie is attached by the browser automatically, so a state-changing request authenticated by it alone is what cross-site request forgery abuses, and those requests additionally need a double-submit token: read the `XSRF-TOKEN` cookie the server sets on any response and send its value back as the `X-XSRF-TOKEN` header. Without it the request is rejected with `403` before it reaches the endpoint. A custom header cannot be forged this way — cross-origin JavaScript cannot set one without a CORS preflight, which this API grants only to configured origins — so the header is the recommended path for anything that is not a browser session. ### App Tokens An app token identifies an integration. Create one with `POST /app-token` (unauthenticated). Creation requires an email address: the token starts in the `pending` state and a 6-digit code is emailed to the owner. Confirm the code with `POST /app-token/verify` to activate the token and receive its value, which is shown only once — store it securely. `GET /app-token/{app_token_id}` then returns its details and quota usage, authenticated by the token itself via the `X-App-Token` header. **The `X-App-Token` header is accepted only by `GET /app-token/{app_token_id}`.** No other operation reads it, and the read quota is recorded but not yet enforced: reading public data needs no token of any kind, and sending an app token with a read neither grants nor meters anything. Metered public read access is the intent of the two-token model, not a description of this release — see the `security` declared on each operation for what it actually accepts. ## SDKs Generated clients for Python, TypeScript, JavaScript and C# wrap every operation below, and each operation on this page shows the SDK call beside the `curl` command. Two of them install from a public registry: ``` pip install entryscape # Python npm install @entryscape/api-client # TypeScript and JavaScript ``` `@entryscape/api-client` ships an ESM and a CommonJS build, so `import` and `require()` both work and TypeScript is not required to use it — the name describes what it is written in, not what you have to write. There is a separate generated JavaScript SDK, and it is deliberately **not** on npm; this package is the npm client for both languages. Every SDK, including the C# and JavaScript ones, is also published as a tarball. The downloads are linked in the sidebar, they are the route to take when a registry is unreachable or a build has to vendor its dependencies, and each archive carries the SDK's own README: - **Python** — `pip install entryscape`, or `python-sdk.tar.gz`. - **TypeScript and JavaScript** — `npm install @entryscape/api-client`, or `typescript-sdk.tar.gz`. - **JavaScript (the separate generated client)** — not published to a registry, by design; `javascript-sdk.tar.gz` only. - **C#** — not published to NuGet yet; `csharp-sdk.tar.gz` only. - **MCP server** — `npx -y @entryscape/mcp-server`, or `mcp-server.tar.gz`. ## MCP Server A Model Context Protocol (MCP) server is generated from this specification and published alongside the SDKs (`@entryscape/mcp-server`), exposing the API as tools for AI assistants and agents. Each operation becomes one tool named after its `operationId` — `listDatasets`, `createCatalog`, `search`, `getJobStatus`. The `auth` operations are the exception: the server reads its token once at startup, so a `login` tool could install nothing and a `logout` tool would only invalidate the token the server was started with. On connect the server also hands the assistant a short set of rules that hold across every tool: a token is bound to one EntryStore instance, the search index lags a write, uploads finish as jobs. ### Install The server is on npm, and MCP servers are normally launched straight from there, so nothing has to be installed first: ``` npx -y @entryscape/mcp-server ``` `npm install -g @entryscape/mcp-server` works too and puts an `entryscape-mcp` binary on `PATH`. It is also listed in the MCP Registry as `com.entryscape/mcp-server`, which is where clients and marketplaces look it up. Without npm, download `mcp-server.tar.gz` from the SDK downloads and unpack it. The package ships prebuilt; install its runtime dependency once: ``` mkdir entryscape-mcp && tar -xzf mcp-server.tar.gz -C entryscape-mcp cd entryscape-mcp && npm install --omit=dev ``` ### Configure The server is a stdio MCP server configured through environment variables, read once at startup: - `ENTRYSCAPE_API_URL` — base URL of the API server, path included. Required: there is no default, and the server refuses to start without it. - `ENTRYSCAPE_AUTH_TOKEN` — a session token from `POST /auth/login`, sent as the `X-Auth-Token` header. Optional: without it reads see public entries and every write is refused. A token is valid only for the EntryStore instance that issued it. - `ENTRYSCAPE_ENTRYSTORE_HOST` — the EntryStore instance the API server should use, for example `dev.entryscape.com/store/`. Unset means the API server's own default. - `ENTRYSCAPE_MCP_UPLOAD_ROOT` — the directory the upload tools may read files from. **Unset means uploads are disabled**: `addFileToDistribution`, `replaceFileInDistribution` and `importTerminology` refuse and say so. - `ENTRYSCAPE_MCP_TAGS` — comma-separated tags to serve tools for, for example `catalog,dataset,distribution,search`. Unset serves every tool. The package's `README.md` lists the remaining variables (timeouts and size caps). Register the server with any MCP-capable client by adding it to the client's `mcpServers` configuration: ```json { \"mcpServers\": { \"entryscape\": { \"command\": \"npx\", \"args\": [\"-y\", \"@entryscape/mcp-server\"], \"env\": { \"ENTRYSCAPE_API_URL\": \"https://<your EntryScape API host>\", \"ENTRYSCAPE_AUTH_TOKEN\": \"your-session-token\" } } } } ``` From an unpacked download instead, the command is `\"command\": \"node\", \"args\": [\"/path/to/entryscape-mcp/dist/bin/entryscape-mcp.js\"]`. ### Claude Code The unpacked package is also a Claude Code plugin, so one install gives the server and the skills below together. Claude Code installs plugins from marketplaces, and the package carries a one-entry marketplace pointing at itself: ``` claude plugin marketplace add /path/to/entryscape-mcp claude plugin install entryscape@entryscape --scope user ``` The plugin passes `ENTRYSCAPE_API_URL`, `ENTRYSCAPE_AUTH_TOKEN`, `ENTRYSCAPE_ENTRYSTORE_HOST`, `ENTRYSCAPE_MCP_TAGS` and `ENTRYSCAPE_MCP_UPLOAD_ROOT` through from the shell Claude Code was started in, so set them there. To try the plugin for one session without installing it, start Claude Code with `--plugin-dir /path/to/entryscape-mcp`. ### Skills `skills/` in the package holds procedures that span several tools, in the Agent Skills format (a `SKILL.md` with `name` and `description`): which tools to call in which order, what to check between calls, and where to stop. Claude Code loads them from the plugin; other clients that read the format can be pointed at the directory. The `find` skill covers discovery, facets and selective metadata reads; `publish-dataset` takes a dataset from catalog to validated distribution with its file; `edit-metadata` changes an entry that already exists without dropping the rest of its graph, models included; `migrate-from-taskrunner` moves an integration off the deprecated Taskrunner API. Every tool a skill names is checked against this specification when the package is built. ## Deprecation Policy When endpoints or features are deprecated: 1. The operation is marked with `deprecated: true` in this spec 2. The operation description documents the replacement endpoint and sunset date 3. Deprecated endpoints remain functional for at least 6 months after announcement 4. The server returns a `Sunset` header with the planned removal date 5. After the sunset date, the endpoint may be removed in a future release
5
+
6
+ The version of the OpenAPI document: 1.3.0
7
+ Contact: contact@entryscape.com
8
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
9
+
10
+ Do not edit the class manually.
11
+ """ # noqa: E501
12
+
13
+ import warnings
14
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
15
+ from typing import Any, Dict, List, Optional, Tuple, Union
16
+ from typing_extensions import Annotated
17
+
18
+ from datetime import datetime
19
+ from pydantic import Field, StrictBool, StrictStr, field_validator
20
+ from typing import Any, Dict, Optional
21
+ from typing_extensions import Annotated
22
+ from entryscape.models.entity_list_response import EntityListResponse
23
+ from entryscape.models.entity_reference import EntityReference
24
+ from entryscape.models.list_catalogs_entry_type_parameter import (
25
+ ListCatalogsEntryTypeParameter,
26
+ )
27
+ from entryscape.models.list_catalogs_graph_type_parameter import (
28
+ ListCatalogsGraphTypeParameter,
29
+ )
30
+ from entryscape.models.list_catalogs_resource_type_parameter import (
31
+ ListCatalogsResourceTypeParameter,
32
+ )
33
+ from entryscape.models.metadata_format import MetadataFormat
34
+ from entryscape.models.metadata_request import MetadataRequest
35
+ from entryscape.models.validation_profile import ValidationProfile
36
+ from entryscape.models.validation_response import ValidationResponse
37
+
38
+ from entryscape.api_client import ApiClient, RequestSerialized
39
+ from entryscape.api_response import ApiResponse
40
+ from entryscape.rest import RESTResponseType
41
+
42
+
43
+ class CatalogApi:
44
+ """NOTE: This class is auto generated by OpenAPI Generator
45
+ Ref: https://openapi-generator.tech
46
+
47
+ Do not edit the class manually.
48
+ """
49
+
50
+ def __init__(self, api_client=None) -> None:
51
+ if api_client is None:
52
+ api_client = ApiClient.get_default()
53
+ self.api_client = api_client
54
+
55
+ @validate_call
56
+ async def create_catalog(
57
+ self,
58
+ context: Annotated[
59
+ str,
60
+ Field(
61
+ strict=True,
62
+ description="The context (catalog) ID where the new entity will be created",
63
+ ),
64
+ ],
65
+ metadata_request: Annotated[
66
+ MetadataRequest,
67
+ Field(
68
+ description="With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
69
+ ),
70
+ ],
71
+ x_entrystore_host: Annotated[
72
+ Optional[StrictStr],
73
+ Field(
74
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
75
+ ),
76
+ ] = None,
77
+ entrystore_host: Annotated[
78
+ Optional[StrictStr],
79
+ Field(
80
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
81
+ ),
82
+ ] = None,
83
+ _request_timeout: Union[
84
+ None,
85
+ Annotated[StrictFloat, Field(gt=0)],
86
+ Tuple[
87
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
88
+ ],
89
+ ] = None,
90
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
91
+ _content_type: Optional[StrictStr] = None,
92
+ _headers: Optional[Dict[StrictStr, Any]] = None,
93
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
94
+ ) -> EntityReference:
95
+ """Create catalog
96
+
97
+ Creates a new catalog in the specified context. The request body must contain valid DCAT-AP metadata in JSON-LD format. Requires authentication with write access to the target context.
98
+
99
+ :param context: The context (catalog) ID where the new entity will be created (required)
100
+ :type context: str
101
+ :param metadata_request: With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
102
+ :type metadata_request: MetadataRequest
103
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
104
+ :type x_entrystore_host: str
105
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
106
+ :type entrystore_host: str
107
+ :param _request_timeout: timeout setting for this request. If one
108
+ number provided, it will be total request
109
+ timeout. It can also be a pair (tuple) of
110
+ (connection, read) timeouts.
111
+ :type _request_timeout: int, tuple(int, int), optional
112
+ :param _request_auth: set to override the auth_settings for an a single
113
+ request; this effectively ignores the
114
+ authentication in the spec for a single request.
115
+ :type _request_auth: dict, optional
116
+ :param _content_type: force content-type for the request.
117
+ :type _content_type: str, Optional
118
+ :param _headers: set to override the headers for a single
119
+ request; this effectively ignores the headers
120
+ in the spec for a single request.
121
+ :type _headers: dict, optional
122
+ :param _host_index: set to override the host_index for a single
123
+ request; this effectively ignores the host_index
124
+ in the spec for a single request.
125
+ :type _host_index: int, optional
126
+ :return: Returns the result object.
127
+ """ # noqa: E501
128
+
129
+ _param = self._create_catalog_serialize(
130
+ context=context,
131
+ metadata_request=metadata_request,
132
+ x_entrystore_host=x_entrystore_host,
133
+ entrystore_host=entrystore_host,
134
+ _request_auth=_request_auth,
135
+ _content_type=_content_type,
136
+ _headers=_headers,
137
+ _host_index=_host_index,
138
+ )
139
+
140
+ _response_types_map: Dict[str, Optional[str]] = {
141
+ "201": "EntityReference",
142
+ "400": "Error",
143
+ "401": "Error",
144
+ "403": "Error",
145
+ "404": "Error",
146
+ "409": "Error",
147
+ "422": "ValidationResponse",
148
+ "500": "Error",
149
+ "503": "Error",
150
+ }
151
+ response_data = await self.api_client.call_api(
152
+ *_param, _request_timeout=_request_timeout
153
+ )
154
+ await response_data.read()
155
+ return self.api_client.response_deserialize(
156
+ response_data=response_data,
157
+ response_types_map=_response_types_map,
158
+ ).data
159
+
160
+ @validate_call
161
+ async def create_catalog_with_http_info(
162
+ self,
163
+ context: Annotated[
164
+ str,
165
+ Field(
166
+ strict=True,
167
+ description="The context (catalog) ID where the new entity will be created",
168
+ ),
169
+ ],
170
+ metadata_request: Annotated[
171
+ MetadataRequest,
172
+ Field(
173
+ description="With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
174
+ ),
175
+ ],
176
+ x_entrystore_host: Annotated[
177
+ Optional[StrictStr],
178
+ Field(
179
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
180
+ ),
181
+ ] = None,
182
+ entrystore_host: Annotated[
183
+ Optional[StrictStr],
184
+ Field(
185
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
186
+ ),
187
+ ] = None,
188
+ _request_timeout: Union[
189
+ None,
190
+ Annotated[StrictFloat, Field(gt=0)],
191
+ Tuple[
192
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
193
+ ],
194
+ ] = None,
195
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
196
+ _content_type: Optional[StrictStr] = None,
197
+ _headers: Optional[Dict[StrictStr, Any]] = None,
198
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
199
+ ) -> ApiResponse[EntityReference]:
200
+ """Create catalog
201
+
202
+ Creates a new catalog in the specified context. The request body must contain valid DCAT-AP metadata in JSON-LD format. Requires authentication with write access to the target context.
203
+
204
+ :param context: The context (catalog) ID where the new entity will be created (required)
205
+ :type context: str
206
+ :param metadata_request: With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
207
+ :type metadata_request: MetadataRequest
208
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
209
+ :type x_entrystore_host: str
210
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
211
+ :type entrystore_host: str
212
+ :param _request_timeout: timeout setting for this request. If one
213
+ number provided, it will be total request
214
+ timeout. It can also be a pair (tuple) of
215
+ (connection, read) timeouts.
216
+ :type _request_timeout: int, tuple(int, int), optional
217
+ :param _request_auth: set to override the auth_settings for an a single
218
+ request; this effectively ignores the
219
+ authentication in the spec for a single request.
220
+ :type _request_auth: dict, optional
221
+ :param _content_type: force content-type for the request.
222
+ :type _content_type: str, Optional
223
+ :param _headers: set to override the headers for a single
224
+ request; this effectively ignores the headers
225
+ in the spec for a single request.
226
+ :type _headers: dict, optional
227
+ :param _host_index: set to override the host_index for a single
228
+ request; this effectively ignores the host_index
229
+ in the spec for a single request.
230
+ :type _host_index: int, optional
231
+ :return: Returns the result object.
232
+ """ # noqa: E501
233
+
234
+ _param = self._create_catalog_serialize(
235
+ context=context,
236
+ metadata_request=metadata_request,
237
+ x_entrystore_host=x_entrystore_host,
238
+ entrystore_host=entrystore_host,
239
+ _request_auth=_request_auth,
240
+ _content_type=_content_type,
241
+ _headers=_headers,
242
+ _host_index=_host_index,
243
+ )
244
+
245
+ _response_types_map: Dict[str, Optional[str]] = {
246
+ "201": "EntityReference",
247
+ "400": "Error",
248
+ "401": "Error",
249
+ "403": "Error",
250
+ "404": "Error",
251
+ "409": "Error",
252
+ "422": "ValidationResponse",
253
+ "500": "Error",
254
+ "503": "Error",
255
+ }
256
+ response_data = await self.api_client.call_api(
257
+ *_param, _request_timeout=_request_timeout
258
+ )
259
+ await response_data.read()
260
+ return self.api_client.response_deserialize(
261
+ response_data=response_data,
262
+ response_types_map=_response_types_map,
263
+ )
264
+
265
+ @validate_call
266
+ async def create_catalog_without_preload_content(
267
+ self,
268
+ context: Annotated[
269
+ str,
270
+ Field(
271
+ strict=True,
272
+ description="The context (catalog) ID where the new entity will be created",
273
+ ),
274
+ ],
275
+ metadata_request: Annotated[
276
+ MetadataRequest,
277
+ Field(
278
+ description="With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
279
+ ),
280
+ ],
281
+ x_entrystore_host: Annotated[
282
+ Optional[StrictStr],
283
+ Field(
284
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
285
+ ),
286
+ ] = None,
287
+ entrystore_host: Annotated[
288
+ Optional[StrictStr],
289
+ Field(
290
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
291
+ ),
292
+ ] = None,
293
+ _request_timeout: Union[
294
+ None,
295
+ Annotated[StrictFloat, Field(gt=0)],
296
+ Tuple[
297
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
298
+ ],
299
+ ] = None,
300
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
301
+ _content_type: Optional[StrictStr] = None,
302
+ _headers: Optional[Dict[StrictStr, Any]] = None,
303
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
304
+ ) -> RESTResponseType:
305
+ """Create catalog
306
+
307
+ Creates a new catalog in the specified context. The request body must contain valid DCAT-AP metadata in JSON-LD format. Requires authentication with write access to the target context.
308
+
309
+ :param context: The context (catalog) ID where the new entity will be created (required)
310
+ :type context: str
311
+ :param metadata_request: With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
312
+ :type metadata_request: MetadataRequest
313
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
314
+ :type x_entrystore_host: str
315
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
316
+ :type entrystore_host: str
317
+ :param _request_timeout: timeout setting for this request. If one
318
+ number provided, it will be total request
319
+ timeout. It can also be a pair (tuple) of
320
+ (connection, read) timeouts.
321
+ :type _request_timeout: int, tuple(int, int), optional
322
+ :param _request_auth: set to override the auth_settings for an a single
323
+ request; this effectively ignores the
324
+ authentication in the spec for a single request.
325
+ :type _request_auth: dict, optional
326
+ :param _content_type: force content-type for the request.
327
+ :type _content_type: str, Optional
328
+ :param _headers: set to override the headers for a single
329
+ request; this effectively ignores the headers
330
+ in the spec for a single request.
331
+ :type _headers: dict, optional
332
+ :param _host_index: set to override the host_index for a single
333
+ request; this effectively ignores the host_index
334
+ in the spec for a single request.
335
+ :type _host_index: int, optional
336
+ :return: Returns the result object.
337
+ """ # noqa: E501
338
+
339
+ _param = self._create_catalog_serialize(
340
+ context=context,
341
+ metadata_request=metadata_request,
342
+ x_entrystore_host=x_entrystore_host,
343
+ entrystore_host=entrystore_host,
344
+ _request_auth=_request_auth,
345
+ _content_type=_content_type,
346
+ _headers=_headers,
347
+ _host_index=_host_index,
348
+ )
349
+
350
+ _response_types_map: Dict[str, Optional[str]] = {
351
+ "201": "EntityReference",
352
+ "400": "Error",
353
+ "401": "Error",
354
+ "403": "Error",
355
+ "404": "Error",
356
+ "409": "Error",
357
+ "422": "ValidationResponse",
358
+ "500": "Error",
359
+ "503": "Error",
360
+ }
361
+ response_data = await self.api_client.call_api(
362
+ *_param, _request_timeout=_request_timeout
363
+ )
364
+ return response_data.response
365
+
366
+ def _create_catalog_serialize(
367
+ self,
368
+ context,
369
+ metadata_request,
370
+ x_entrystore_host,
371
+ entrystore_host,
372
+ _request_auth,
373
+ _content_type,
374
+ _headers,
375
+ _host_index,
376
+ ) -> RequestSerialized:
377
+
378
+ _host = None
379
+
380
+ _collection_formats: Dict[str, str] = {}
381
+
382
+ _path_params: Dict[str, str] = {}
383
+ _query_params: List[Tuple[str, str]] = []
384
+ _header_params: Dict[str, Optional[str]] = _headers or {}
385
+ _form_params: List[Tuple[str, str]] = []
386
+ _files: Dict[
387
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
388
+ ] = {}
389
+ _body_params: Optional[bytes] = None
390
+
391
+ # process the path parameters
392
+ # process the query parameters
393
+ if entrystore_host is not None:
394
+
395
+ _query_params.append(("entrystore_host", entrystore_host))
396
+
397
+ if context is not None:
398
+
399
+ _query_params.append(("context", context))
400
+
401
+ # process the header parameters
402
+ if x_entrystore_host is not None:
403
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
404
+ # process the form parameters
405
+ # process the body parameter
406
+ if metadata_request is not None:
407
+ _body_params = metadata_request
408
+
409
+ # set the HTTP header `Accept`
410
+ if "Accept" not in _header_params:
411
+ _header_params["Accept"] = self.api_client.select_header_accept(
412
+ ["application/json"]
413
+ )
414
+
415
+ # set the HTTP header `Content-Type`
416
+ if _content_type:
417
+ _header_params["Content-Type"] = _content_type
418
+ else:
419
+ _default_content_type = self.api_client.select_header_content_type(
420
+ ["application/ld+json"]
421
+ )
422
+ if _default_content_type is not None:
423
+ _header_params["Content-Type"] = _default_content_type
424
+
425
+ # authentication setting
426
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
427
+
428
+ return self.api_client.param_serialize(
429
+ method="POST",
430
+ resource_path="/catalog",
431
+ path_params=_path_params,
432
+ query_params=_query_params,
433
+ header_params=_header_params,
434
+ body=_body_params,
435
+ post_params=_form_params,
436
+ files=_files,
437
+ auth_settings=_auth_settings,
438
+ collection_formats=_collection_formats,
439
+ _host=_host,
440
+ _request_auth=_request_auth,
441
+ )
442
+
443
+ @validate_call
444
+ async def delete_catalog(
445
+ self,
446
+ context_id: Annotated[
447
+ str,
448
+ Field(
449
+ strict=True,
450
+ description="The context (catalog) identifier in EntryStore",
451
+ ),
452
+ ],
453
+ entry_id: Annotated[
454
+ str,
455
+ Field(strict=True, description="The entry identifier within the context"),
456
+ ],
457
+ x_entrystore_host: Annotated[
458
+ Optional[StrictStr],
459
+ Field(
460
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
461
+ ),
462
+ ] = None,
463
+ entrystore_host: Annotated[
464
+ Optional[StrictStr],
465
+ Field(
466
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
467
+ ),
468
+ ] = None,
469
+ _request_timeout: Union[
470
+ None,
471
+ Annotated[StrictFloat, Field(gt=0)],
472
+ Tuple[
473
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
474
+ ],
475
+ ] = None,
476
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
477
+ _content_type: Optional[StrictStr] = None,
478
+ _headers: Optional[Dict[StrictStr, Any]] = None,
479
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
480
+ ) -> None:
481
+ """Delete catalog
482
+
483
+ Deletes a specific catalog and its associated metadata. This operation is irreversible. Requires authentication with write access to the entry's context.
484
+
485
+ :param context_id: The context (catalog) identifier in EntryStore (required)
486
+ :type context_id: str
487
+ :param entry_id: The entry identifier within the context (required)
488
+ :type entry_id: str
489
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
490
+ :type x_entrystore_host: str
491
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
492
+ :type entrystore_host: str
493
+ :param _request_timeout: timeout setting for this request. If one
494
+ number provided, it will be total request
495
+ timeout. It can also be a pair (tuple) of
496
+ (connection, read) timeouts.
497
+ :type _request_timeout: int, tuple(int, int), optional
498
+ :param _request_auth: set to override the auth_settings for an a single
499
+ request; this effectively ignores the
500
+ authentication in the spec for a single request.
501
+ :type _request_auth: dict, optional
502
+ :param _content_type: force content-type for the request.
503
+ :type _content_type: str, Optional
504
+ :param _headers: set to override the headers for a single
505
+ request; this effectively ignores the headers
506
+ in the spec for a single request.
507
+ :type _headers: dict, optional
508
+ :param _host_index: set to override the host_index for a single
509
+ request; this effectively ignores the host_index
510
+ in the spec for a single request.
511
+ :type _host_index: int, optional
512
+ :return: Returns the result object.
513
+ """ # noqa: E501
514
+
515
+ _param = self._delete_catalog_serialize(
516
+ context_id=context_id,
517
+ entry_id=entry_id,
518
+ x_entrystore_host=x_entrystore_host,
519
+ entrystore_host=entrystore_host,
520
+ _request_auth=_request_auth,
521
+ _content_type=_content_type,
522
+ _headers=_headers,
523
+ _host_index=_host_index,
524
+ )
525
+
526
+ _response_types_map: Dict[str, Optional[str]] = {
527
+ "204": None,
528
+ "400": "Error",
529
+ "401": "Error",
530
+ "403": "Error",
531
+ "404": "Error",
532
+ "409": "Error",
533
+ "500": "Error",
534
+ "503": "Error",
535
+ }
536
+ response_data = await self.api_client.call_api(
537
+ *_param, _request_timeout=_request_timeout
538
+ )
539
+ await response_data.read()
540
+ return self.api_client.response_deserialize(
541
+ response_data=response_data,
542
+ response_types_map=_response_types_map,
543
+ ).data
544
+
545
+ @validate_call
546
+ async def delete_catalog_with_http_info(
547
+ self,
548
+ context_id: Annotated[
549
+ str,
550
+ Field(
551
+ strict=True,
552
+ description="The context (catalog) identifier in EntryStore",
553
+ ),
554
+ ],
555
+ entry_id: Annotated[
556
+ str,
557
+ Field(strict=True, description="The entry identifier within the context"),
558
+ ],
559
+ x_entrystore_host: Annotated[
560
+ Optional[StrictStr],
561
+ Field(
562
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
563
+ ),
564
+ ] = None,
565
+ entrystore_host: Annotated[
566
+ Optional[StrictStr],
567
+ Field(
568
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
569
+ ),
570
+ ] = None,
571
+ _request_timeout: Union[
572
+ None,
573
+ Annotated[StrictFloat, Field(gt=0)],
574
+ Tuple[
575
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
576
+ ],
577
+ ] = None,
578
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
579
+ _content_type: Optional[StrictStr] = None,
580
+ _headers: Optional[Dict[StrictStr, Any]] = None,
581
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
582
+ ) -> ApiResponse[None]:
583
+ """Delete catalog
584
+
585
+ Deletes a specific catalog and its associated metadata. This operation is irreversible. Requires authentication with write access to the entry's context.
586
+
587
+ :param context_id: The context (catalog) identifier in EntryStore (required)
588
+ :type context_id: str
589
+ :param entry_id: The entry identifier within the context (required)
590
+ :type entry_id: str
591
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
592
+ :type x_entrystore_host: str
593
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
594
+ :type entrystore_host: str
595
+ :param _request_timeout: timeout setting for this request. If one
596
+ number provided, it will be total request
597
+ timeout. It can also be a pair (tuple) of
598
+ (connection, read) timeouts.
599
+ :type _request_timeout: int, tuple(int, int), optional
600
+ :param _request_auth: set to override the auth_settings for an a single
601
+ request; this effectively ignores the
602
+ authentication in the spec for a single request.
603
+ :type _request_auth: dict, optional
604
+ :param _content_type: force content-type for the request.
605
+ :type _content_type: str, Optional
606
+ :param _headers: set to override the headers for a single
607
+ request; this effectively ignores the headers
608
+ in the spec for a single request.
609
+ :type _headers: dict, optional
610
+ :param _host_index: set to override the host_index for a single
611
+ request; this effectively ignores the host_index
612
+ in the spec for a single request.
613
+ :type _host_index: int, optional
614
+ :return: Returns the result object.
615
+ """ # noqa: E501
616
+
617
+ _param = self._delete_catalog_serialize(
618
+ context_id=context_id,
619
+ entry_id=entry_id,
620
+ x_entrystore_host=x_entrystore_host,
621
+ entrystore_host=entrystore_host,
622
+ _request_auth=_request_auth,
623
+ _content_type=_content_type,
624
+ _headers=_headers,
625
+ _host_index=_host_index,
626
+ )
627
+
628
+ _response_types_map: Dict[str, Optional[str]] = {
629
+ "204": None,
630
+ "400": "Error",
631
+ "401": "Error",
632
+ "403": "Error",
633
+ "404": "Error",
634
+ "409": "Error",
635
+ "500": "Error",
636
+ "503": "Error",
637
+ }
638
+ response_data = await self.api_client.call_api(
639
+ *_param, _request_timeout=_request_timeout
640
+ )
641
+ await response_data.read()
642
+ return self.api_client.response_deserialize(
643
+ response_data=response_data,
644
+ response_types_map=_response_types_map,
645
+ )
646
+
647
+ @validate_call
648
+ async def delete_catalog_without_preload_content(
649
+ self,
650
+ context_id: Annotated[
651
+ str,
652
+ Field(
653
+ strict=True,
654
+ description="The context (catalog) identifier in EntryStore",
655
+ ),
656
+ ],
657
+ entry_id: Annotated[
658
+ str,
659
+ Field(strict=True, description="The entry identifier within the context"),
660
+ ],
661
+ x_entrystore_host: Annotated[
662
+ Optional[StrictStr],
663
+ Field(
664
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
665
+ ),
666
+ ] = None,
667
+ entrystore_host: Annotated[
668
+ Optional[StrictStr],
669
+ Field(
670
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
671
+ ),
672
+ ] = None,
673
+ _request_timeout: Union[
674
+ None,
675
+ Annotated[StrictFloat, Field(gt=0)],
676
+ Tuple[
677
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
678
+ ],
679
+ ] = None,
680
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
681
+ _content_type: Optional[StrictStr] = None,
682
+ _headers: Optional[Dict[StrictStr, Any]] = None,
683
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
684
+ ) -> RESTResponseType:
685
+ """Delete catalog
686
+
687
+ Deletes a specific catalog and its associated metadata. This operation is irreversible. Requires authentication with write access to the entry's context.
688
+
689
+ :param context_id: The context (catalog) identifier in EntryStore (required)
690
+ :type context_id: str
691
+ :param entry_id: The entry identifier within the context (required)
692
+ :type entry_id: str
693
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
694
+ :type x_entrystore_host: str
695
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
696
+ :type entrystore_host: str
697
+ :param _request_timeout: timeout setting for this request. If one
698
+ number provided, it will be total request
699
+ timeout. It can also be a pair (tuple) of
700
+ (connection, read) timeouts.
701
+ :type _request_timeout: int, tuple(int, int), optional
702
+ :param _request_auth: set to override the auth_settings for an a single
703
+ request; this effectively ignores the
704
+ authentication in the spec for a single request.
705
+ :type _request_auth: dict, optional
706
+ :param _content_type: force content-type for the request.
707
+ :type _content_type: str, Optional
708
+ :param _headers: set to override the headers for a single
709
+ request; this effectively ignores the headers
710
+ in the spec for a single request.
711
+ :type _headers: dict, optional
712
+ :param _host_index: set to override the host_index for a single
713
+ request; this effectively ignores the host_index
714
+ in the spec for a single request.
715
+ :type _host_index: int, optional
716
+ :return: Returns the result object.
717
+ """ # noqa: E501
718
+
719
+ _param = self._delete_catalog_serialize(
720
+ context_id=context_id,
721
+ entry_id=entry_id,
722
+ x_entrystore_host=x_entrystore_host,
723
+ entrystore_host=entrystore_host,
724
+ _request_auth=_request_auth,
725
+ _content_type=_content_type,
726
+ _headers=_headers,
727
+ _host_index=_host_index,
728
+ )
729
+
730
+ _response_types_map: Dict[str, Optional[str]] = {
731
+ "204": None,
732
+ "400": "Error",
733
+ "401": "Error",
734
+ "403": "Error",
735
+ "404": "Error",
736
+ "409": "Error",
737
+ "500": "Error",
738
+ "503": "Error",
739
+ }
740
+ response_data = await self.api_client.call_api(
741
+ *_param, _request_timeout=_request_timeout
742
+ )
743
+ return response_data.response
744
+
745
+ def _delete_catalog_serialize(
746
+ self,
747
+ context_id,
748
+ entry_id,
749
+ x_entrystore_host,
750
+ entrystore_host,
751
+ _request_auth,
752
+ _content_type,
753
+ _headers,
754
+ _host_index,
755
+ ) -> RequestSerialized:
756
+
757
+ _host = None
758
+
759
+ _collection_formats: Dict[str, str] = {}
760
+
761
+ _path_params: Dict[str, str] = {}
762
+ _query_params: List[Tuple[str, str]] = []
763
+ _header_params: Dict[str, Optional[str]] = _headers or {}
764
+ _form_params: List[Tuple[str, str]] = []
765
+ _files: Dict[
766
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
767
+ ] = {}
768
+ _body_params: Optional[bytes] = None
769
+
770
+ # process the path parameters
771
+ if context_id is not None:
772
+ _path_params["context_id"] = context_id
773
+ if entry_id is not None:
774
+ _path_params["entry_id"] = entry_id
775
+ # process the query parameters
776
+ if entrystore_host is not None:
777
+
778
+ _query_params.append(("entrystore_host", entrystore_host))
779
+
780
+ # process the header parameters
781
+ if x_entrystore_host is not None:
782
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
783
+ # process the form parameters
784
+ # process the body parameter
785
+
786
+ # set the HTTP header `Accept`
787
+ if "Accept" not in _header_params:
788
+ _header_params["Accept"] = self.api_client.select_header_accept(
789
+ ["application/json"]
790
+ )
791
+
792
+ # authentication setting
793
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
794
+
795
+ return self.api_client.param_serialize(
796
+ method="DELETE",
797
+ resource_path="/catalog/{context_id}/{entry_id}",
798
+ path_params=_path_params,
799
+ query_params=_query_params,
800
+ header_params=_header_params,
801
+ body=_body_params,
802
+ post_params=_form_params,
803
+ files=_files,
804
+ auth_settings=_auth_settings,
805
+ collection_formats=_collection_formats,
806
+ _host=_host,
807
+ _request_auth=_request_auth,
808
+ )
809
+
810
+ @validate_call
811
+ async def get_catalog(
812
+ self,
813
+ context_id: Annotated[
814
+ str,
815
+ Field(
816
+ strict=True,
817
+ description="The context (catalog) identifier in EntryStore",
818
+ ),
819
+ ],
820
+ entry_id: Annotated[
821
+ str,
822
+ Field(strict=True, description="The entry identifier within the context"),
823
+ ],
824
+ x_entrystore_host: Annotated[
825
+ Optional[StrictStr],
826
+ Field(
827
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
828
+ ),
829
+ ] = None,
830
+ entrystore_host: Annotated[
831
+ Optional[StrictStr],
832
+ Field(
833
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
834
+ ),
835
+ ] = None,
836
+ _request_timeout: Union[
837
+ None,
838
+ Annotated[StrictFloat, Field(gt=0)],
839
+ Tuple[
840
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
841
+ ],
842
+ ] = None,
843
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
844
+ _content_type: Optional[StrictStr] = None,
845
+ _headers: Optional[Dict[StrictStr, Any]] = None,
846
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
847
+ ) -> EntityReference:
848
+ """Get catalog
849
+
850
+ Returns basic reference information for a specific catalog. Use the /metadata sub-endpoint to retrieve the full DCAT-AP metadata. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
851
+
852
+ :param context_id: The context (catalog) identifier in EntryStore (required)
853
+ :type context_id: str
854
+ :param entry_id: The entry identifier within the context (required)
855
+ :type entry_id: str
856
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
857
+ :type x_entrystore_host: str
858
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
859
+ :type entrystore_host: str
860
+ :param _request_timeout: timeout setting for this request. If one
861
+ number provided, it will be total request
862
+ timeout. It can also be a pair (tuple) of
863
+ (connection, read) timeouts.
864
+ :type _request_timeout: int, tuple(int, int), optional
865
+ :param _request_auth: set to override the auth_settings for an a single
866
+ request; this effectively ignores the
867
+ authentication in the spec for a single request.
868
+ :type _request_auth: dict, optional
869
+ :param _content_type: force content-type for the request.
870
+ :type _content_type: str, Optional
871
+ :param _headers: set to override the headers for a single
872
+ request; this effectively ignores the headers
873
+ in the spec for a single request.
874
+ :type _headers: dict, optional
875
+ :param _host_index: set to override the host_index for a single
876
+ request; this effectively ignores the host_index
877
+ in the spec for a single request.
878
+ :type _host_index: int, optional
879
+ :return: Returns the result object.
880
+ """ # noqa: E501
881
+
882
+ _param = self._get_catalog_serialize(
883
+ context_id=context_id,
884
+ entry_id=entry_id,
885
+ x_entrystore_host=x_entrystore_host,
886
+ entrystore_host=entrystore_host,
887
+ _request_auth=_request_auth,
888
+ _content_type=_content_type,
889
+ _headers=_headers,
890
+ _host_index=_host_index,
891
+ )
892
+
893
+ _response_types_map: Dict[str, Optional[str]] = {
894
+ "200": "EntityReference",
895
+ "400": "Error",
896
+ "401": "Error",
897
+ "404": "Error",
898
+ "500": "Error",
899
+ "503": "Error",
900
+ }
901
+ response_data = await self.api_client.call_api(
902
+ *_param, _request_timeout=_request_timeout
903
+ )
904
+ await response_data.read()
905
+ return self.api_client.response_deserialize(
906
+ response_data=response_data,
907
+ response_types_map=_response_types_map,
908
+ ).data
909
+
910
+ @validate_call
911
+ async def get_catalog_with_http_info(
912
+ self,
913
+ context_id: Annotated[
914
+ str,
915
+ Field(
916
+ strict=True,
917
+ description="The context (catalog) identifier in EntryStore",
918
+ ),
919
+ ],
920
+ entry_id: Annotated[
921
+ str,
922
+ Field(strict=True, description="The entry identifier within the context"),
923
+ ],
924
+ x_entrystore_host: Annotated[
925
+ Optional[StrictStr],
926
+ Field(
927
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
928
+ ),
929
+ ] = None,
930
+ entrystore_host: Annotated[
931
+ Optional[StrictStr],
932
+ Field(
933
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
934
+ ),
935
+ ] = None,
936
+ _request_timeout: Union[
937
+ None,
938
+ Annotated[StrictFloat, Field(gt=0)],
939
+ Tuple[
940
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
941
+ ],
942
+ ] = None,
943
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
944
+ _content_type: Optional[StrictStr] = None,
945
+ _headers: Optional[Dict[StrictStr, Any]] = None,
946
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
947
+ ) -> ApiResponse[EntityReference]:
948
+ """Get catalog
949
+
950
+ Returns basic reference information for a specific catalog. Use the /metadata sub-endpoint to retrieve the full DCAT-AP metadata. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
951
+
952
+ :param context_id: The context (catalog) identifier in EntryStore (required)
953
+ :type context_id: str
954
+ :param entry_id: The entry identifier within the context (required)
955
+ :type entry_id: str
956
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
957
+ :type x_entrystore_host: str
958
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
959
+ :type entrystore_host: str
960
+ :param _request_timeout: timeout setting for this request. If one
961
+ number provided, it will be total request
962
+ timeout. It can also be a pair (tuple) of
963
+ (connection, read) timeouts.
964
+ :type _request_timeout: int, tuple(int, int), optional
965
+ :param _request_auth: set to override the auth_settings for an a single
966
+ request; this effectively ignores the
967
+ authentication in the spec for a single request.
968
+ :type _request_auth: dict, optional
969
+ :param _content_type: force content-type for the request.
970
+ :type _content_type: str, Optional
971
+ :param _headers: set to override the headers for a single
972
+ request; this effectively ignores the headers
973
+ in the spec for a single request.
974
+ :type _headers: dict, optional
975
+ :param _host_index: set to override the host_index for a single
976
+ request; this effectively ignores the host_index
977
+ in the spec for a single request.
978
+ :type _host_index: int, optional
979
+ :return: Returns the result object.
980
+ """ # noqa: E501
981
+
982
+ _param = self._get_catalog_serialize(
983
+ context_id=context_id,
984
+ entry_id=entry_id,
985
+ x_entrystore_host=x_entrystore_host,
986
+ entrystore_host=entrystore_host,
987
+ _request_auth=_request_auth,
988
+ _content_type=_content_type,
989
+ _headers=_headers,
990
+ _host_index=_host_index,
991
+ )
992
+
993
+ _response_types_map: Dict[str, Optional[str]] = {
994
+ "200": "EntityReference",
995
+ "400": "Error",
996
+ "401": "Error",
997
+ "404": "Error",
998
+ "500": "Error",
999
+ "503": "Error",
1000
+ }
1001
+ response_data = await self.api_client.call_api(
1002
+ *_param, _request_timeout=_request_timeout
1003
+ )
1004
+ await response_data.read()
1005
+ return self.api_client.response_deserialize(
1006
+ response_data=response_data,
1007
+ response_types_map=_response_types_map,
1008
+ )
1009
+
1010
+ @validate_call
1011
+ async def get_catalog_without_preload_content(
1012
+ self,
1013
+ context_id: Annotated[
1014
+ str,
1015
+ Field(
1016
+ strict=True,
1017
+ description="The context (catalog) identifier in EntryStore",
1018
+ ),
1019
+ ],
1020
+ entry_id: Annotated[
1021
+ str,
1022
+ Field(strict=True, description="The entry identifier within the context"),
1023
+ ],
1024
+ x_entrystore_host: Annotated[
1025
+ Optional[StrictStr],
1026
+ Field(
1027
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1028
+ ),
1029
+ ] = None,
1030
+ entrystore_host: Annotated[
1031
+ Optional[StrictStr],
1032
+ Field(
1033
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1034
+ ),
1035
+ ] = None,
1036
+ _request_timeout: Union[
1037
+ None,
1038
+ Annotated[StrictFloat, Field(gt=0)],
1039
+ Tuple[
1040
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1041
+ ],
1042
+ ] = None,
1043
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1044
+ _content_type: Optional[StrictStr] = None,
1045
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1046
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1047
+ ) -> RESTResponseType:
1048
+ """Get catalog
1049
+
1050
+ Returns basic reference information for a specific catalog. Use the /metadata sub-endpoint to retrieve the full DCAT-AP metadata. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
1051
+
1052
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1053
+ :type context_id: str
1054
+ :param entry_id: The entry identifier within the context (required)
1055
+ :type entry_id: str
1056
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1057
+ :type x_entrystore_host: str
1058
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1059
+ :type entrystore_host: str
1060
+ :param _request_timeout: timeout setting for this request. If one
1061
+ number provided, it will be total request
1062
+ timeout. It can also be a pair (tuple) of
1063
+ (connection, read) timeouts.
1064
+ :type _request_timeout: int, tuple(int, int), optional
1065
+ :param _request_auth: set to override the auth_settings for an a single
1066
+ request; this effectively ignores the
1067
+ authentication in the spec for a single request.
1068
+ :type _request_auth: dict, optional
1069
+ :param _content_type: force content-type for the request.
1070
+ :type _content_type: str, Optional
1071
+ :param _headers: set to override the headers for a single
1072
+ request; this effectively ignores the headers
1073
+ in the spec for a single request.
1074
+ :type _headers: dict, optional
1075
+ :param _host_index: set to override the host_index for a single
1076
+ request; this effectively ignores the host_index
1077
+ in the spec for a single request.
1078
+ :type _host_index: int, optional
1079
+ :return: Returns the result object.
1080
+ """ # noqa: E501
1081
+
1082
+ _param = self._get_catalog_serialize(
1083
+ context_id=context_id,
1084
+ entry_id=entry_id,
1085
+ x_entrystore_host=x_entrystore_host,
1086
+ entrystore_host=entrystore_host,
1087
+ _request_auth=_request_auth,
1088
+ _content_type=_content_type,
1089
+ _headers=_headers,
1090
+ _host_index=_host_index,
1091
+ )
1092
+
1093
+ _response_types_map: Dict[str, Optional[str]] = {
1094
+ "200": "EntityReference",
1095
+ "400": "Error",
1096
+ "401": "Error",
1097
+ "404": "Error",
1098
+ "500": "Error",
1099
+ "503": "Error",
1100
+ }
1101
+ response_data = await self.api_client.call_api(
1102
+ *_param, _request_timeout=_request_timeout
1103
+ )
1104
+ return response_data.response
1105
+
1106
+ def _get_catalog_serialize(
1107
+ self,
1108
+ context_id,
1109
+ entry_id,
1110
+ x_entrystore_host,
1111
+ entrystore_host,
1112
+ _request_auth,
1113
+ _content_type,
1114
+ _headers,
1115
+ _host_index,
1116
+ ) -> RequestSerialized:
1117
+
1118
+ _host = None
1119
+
1120
+ _collection_formats: Dict[str, str] = {}
1121
+
1122
+ _path_params: Dict[str, str] = {}
1123
+ _query_params: List[Tuple[str, str]] = []
1124
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1125
+ _form_params: List[Tuple[str, str]] = []
1126
+ _files: Dict[
1127
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1128
+ ] = {}
1129
+ _body_params: Optional[bytes] = None
1130
+
1131
+ # process the path parameters
1132
+ if context_id is not None:
1133
+ _path_params["context_id"] = context_id
1134
+ if entry_id is not None:
1135
+ _path_params["entry_id"] = entry_id
1136
+ # process the query parameters
1137
+ if entrystore_host is not None:
1138
+
1139
+ _query_params.append(("entrystore_host", entrystore_host))
1140
+
1141
+ # process the header parameters
1142
+ if x_entrystore_host is not None:
1143
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
1144
+ # process the form parameters
1145
+ # process the body parameter
1146
+
1147
+ # set the HTTP header `Accept`
1148
+ if "Accept" not in _header_params:
1149
+ _header_params["Accept"] = self.api_client.select_header_accept(
1150
+ ["application/json"]
1151
+ )
1152
+
1153
+ # authentication setting
1154
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
1155
+
1156
+ return self.api_client.param_serialize(
1157
+ method="GET",
1158
+ resource_path="/catalog/{context_id}/{entry_id}",
1159
+ path_params=_path_params,
1160
+ query_params=_query_params,
1161
+ header_params=_header_params,
1162
+ body=_body_params,
1163
+ post_params=_form_params,
1164
+ files=_files,
1165
+ auth_settings=_auth_settings,
1166
+ collection_formats=_collection_formats,
1167
+ _host=_host,
1168
+ _request_auth=_request_auth,
1169
+ )
1170
+
1171
+ @validate_call
1172
+ async def get_catalog_metadata(
1173
+ self,
1174
+ context_id: Annotated[
1175
+ str,
1176
+ Field(
1177
+ strict=True,
1178
+ description="The context (catalog) identifier in EntryStore",
1179
+ ),
1180
+ ],
1181
+ entry_id: Annotated[
1182
+ str,
1183
+ Field(strict=True, description="The entry identifier within the context"),
1184
+ ],
1185
+ x_entrystore_host: Annotated[
1186
+ Optional[StrictStr],
1187
+ Field(
1188
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1189
+ ),
1190
+ ] = None,
1191
+ entrystore_host: Annotated[
1192
+ Optional[StrictStr],
1193
+ Field(
1194
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1195
+ ),
1196
+ ] = None,
1197
+ format: Annotated[
1198
+ Optional[MetadataFormat],
1199
+ Field(
1200
+ description="Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format "
1201
+ ),
1202
+ ] = None,
1203
+ _request_timeout: Union[
1204
+ None,
1205
+ Annotated[StrictFloat, Field(gt=0)],
1206
+ Tuple[
1207
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1208
+ ],
1209
+ ] = None,
1210
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1211
+ _content_type: Optional[StrictStr] = None,
1212
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1213
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1214
+ ) -> Dict[str, object]:
1215
+ """Get catalog metadata
1216
+
1217
+ Returns the raw DCAT-AP metadata for a specific catalog. The response format can be specified using the `format` query parameter. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
1218
+
1219
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1220
+ :type context_id: str
1221
+ :param entry_id: The entry identifier within the context (required)
1222
+ :type entry_id: str
1223
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1224
+ :type x_entrystore_host: str
1225
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1226
+ :type entrystore_host: str
1227
+ :param format: Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format
1228
+ :type format: MetadataFormat
1229
+ :param _request_timeout: timeout setting for this request. If one
1230
+ number provided, it will be total request
1231
+ timeout. It can also be a pair (tuple) of
1232
+ (connection, read) timeouts.
1233
+ :type _request_timeout: int, tuple(int, int), optional
1234
+ :param _request_auth: set to override the auth_settings for an a single
1235
+ request; this effectively ignores the
1236
+ authentication in the spec for a single request.
1237
+ :type _request_auth: dict, optional
1238
+ :param _content_type: force content-type for the request.
1239
+ :type _content_type: str, Optional
1240
+ :param _headers: set to override the headers for a single
1241
+ request; this effectively ignores the headers
1242
+ in the spec for a single request.
1243
+ :type _headers: dict, optional
1244
+ :param _host_index: set to override the host_index for a single
1245
+ request; this effectively ignores the host_index
1246
+ in the spec for a single request.
1247
+ :type _host_index: int, optional
1248
+ :return: Returns the result object.
1249
+ """ # noqa: E501
1250
+
1251
+ _param = self._get_catalog_metadata_serialize(
1252
+ context_id=context_id,
1253
+ entry_id=entry_id,
1254
+ x_entrystore_host=x_entrystore_host,
1255
+ entrystore_host=entrystore_host,
1256
+ format=format,
1257
+ _request_auth=_request_auth,
1258
+ _content_type=_content_type,
1259
+ _headers=_headers,
1260
+ _host_index=_host_index,
1261
+ )
1262
+
1263
+ _response_types_map: Dict[str, Optional[str]] = {
1264
+ "200": "Dict[str, object]",
1265
+ "400": "Error",
1266
+ "401": "Error",
1267
+ "404": "Error",
1268
+ "500": "Error",
1269
+ "503": "Error",
1270
+ }
1271
+ response_data = await self.api_client.call_api(
1272
+ *_param, _request_timeout=_request_timeout
1273
+ )
1274
+ await response_data.read()
1275
+ return self.api_client.response_deserialize(
1276
+ response_data=response_data,
1277
+ response_types_map=_response_types_map,
1278
+ ).data
1279
+
1280
+ @validate_call
1281
+ async def get_catalog_metadata_with_http_info(
1282
+ self,
1283
+ context_id: Annotated[
1284
+ str,
1285
+ Field(
1286
+ strict=True,
1287
+ description="The context (catalog) identifier in EntryStore",
1288
+ ),
1289
+ ],
1290
+ entry_id: Annotated[
1291
+ str,
1292
+ Field(strict=True, description="The entry identifier within the context"),
1293
+ ],
1294
+ x_entrystore_host: Annotated[
1295
+ Optional[StrictStr],
1296
+ Field(
1297
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1298
+ ),
1299
+ ] = None,
1300
+ entrystore_host: Annotated[
1301
+ Optional[StrictStr],
1302
+ Field(
1303
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1304
+ ),
1305
+ ] = None,
1306
+ format: Annotated[
1307
+ Optional[MetadataFormat],
1308
+ Field(
1309
+ description="Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format "
1310
+ ),
1311
+ ] = None,
1312
+ _request_timeout: Union[
1313
+ None,
1314
+ Annotated[StrictFloat, Field(gt=0)],
1315
+ Tuple[
1316
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1317
+ ],
1318
+ ] = None,
1319
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1320
+ _content_type: Optional[StrictStr] = None,
1321
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1322
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1323
+ ) -> ApiResponse[Dict[str, object]]:
1324
+ """Get catalog metadata
1325
+
1326
+ Returns the raw DCAT-AP metadata for a specific catalog. The response format can be specified using the `format` query parameter. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
1327
+
1328
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1329
+ :type context_id: str
1330
+ :param entry_id: The entry identifier within the context (required)
1331
+ :type entry_id: str
1332
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1333
+ :type x_entrystore_host: str
1334
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1335
+ :type entrystore_host: str
1336
+ :param format: Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format
1337
+ :type format: MetadataFormat
1338
+ :param _request_timeout: timeout setting for this request. If one
1339
+ number provided, it will be total request
1340
+ timeout. It can also be a pair (tuple) of
1341
+ (connection, read) timeouts.
1342
+ :type _request_timeout: int, tuple(int, int), optional
1343
+ :param _request_auth: set to override the auth_settings for an a single
1344
+ request; this effectively ignores the
1345
+ authentication in the spec for a single request.
1346
+ :type _request_auth: dict, optional
1347
+ :param _content_type: force content-type for the request.
1348
+ :type _content_type: str, Optional
1349
+ :param _headers: set to override the headers for a single
1350
+ request; this effectively ignores the headers
1351
+ in the spec for a single request.
1352
+ :type _headers: dict, optional
1353
+ :param _host_index: set to override the host_index for a single
1354
+ request; this effectively ignores the host_index
1355
+ in the spec for a single request.
1356
+ :type _host_index: int, optional
1357
+ :return: Returns the result object.
1358
+ """ # noqa: E501
1359
+
1360
+ _param = self._get_catalog_metadata_serialize(
1361
+ context_id=context_id,
1362
+ entry_id=entry_id,
1363
+ x_entrystore_host=x_entrystore_host,
1364
+ entrystore_host=entrystore_host,
1365
+ format=format,
1366
+ _request_auth=_request_auth,
1367
+ _content_type=_content_type,
1368
+ _headers=_headers,
1369
+ _host_index=_host_index,
1370
+ )
1371
+
1372
+ _response_types_map: Dict[str, Optional[str]] = {
1373
+ "200": "Dict[str, object]",
1374
+ "400": "Error",
1375
+ "401": "Error",
1376
+ "404": "Error",
1377
+ "500": "Error",
1378
+ "503": "Error",
1379
+ }
1380
+ response_data = await self.api_client.call_api(
1381
+ *_param, _request_timeout=_request_timeout
1382
+ )
1383
+ await response_data.read()
1384
+ return self.api_client.response_deserialize(
1385
+ response_data=response_data,
1386
+ response_types_map=_response_types_map,
1387
+ )
1388
+
1389
+ @validate_call
1390
+ async def get_catalog_metadata_without_preload_content(
1391
+ self,
1392
+ context_id: Annotated[
1393
+ str,
1394
+ Field(
1395
+ strict=True,
1396
+ description="The context (catalog) identifier in EntryStore",
1397
+ ),
1398
+ ],
1399
+ entry_id: Annotated[
1400
+ str,
1401
+ Field(strict=True, description="The entry identifier within the context"),
1402
+ ],
1403
+ x_entrystore_host: Annotated[
1404
+ Optional[StrictStr],
1405
+ Field(
1406
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1407
+ ),
1408
+ ] = None,
1409
+ entrystore_host: Annotated[
1410
+ Optional[StrictStr],
1411
+ Field(
1412
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1413
+ ),
1414
+ ] = None,
1415
+ format: Annotated[
1416
+ Optional[MetadataFormat],
1417
+ Field(
1418
+ description="Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format "
1419
+ ),
1420
+ ] = None,
1421
+ _request_timeout: Union[
1422
+ None,
1423
+ Annotated[StrictFloat, Field(gt=0)],
1424
+ Tuple[
1425
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1426
+ ],
1427
+ ] = None,
1428
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1429
+ _content_type: Optional[StrictStr] = None,
1430
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1431
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1432
+ ) -> RESTResponseType:
1433
+ """Get catalog metadata
1434
+
1435
+ Returns the raw DCAT-AP metadata for a specific catalog. The response format can be specified using the `format` query parameter. Authentication is optional. Public entries are accessible without authentication. Authenticated requests may access additional non-public entries.
1436
+
1437
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1438
+ :type context_id: str
1439
+ :param entry_id: The entry identifier within the context (required)
1440
+ :type entry_id: str
1441
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1442
+ :type x_entrystore_host: str
1443
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1444
+ :type entrystore_host: str
1445
+ :param format: Response format for metadata. Defaults to JSON-LD (json-ld). Supported formats: - `json-ld` - JSON-LD format (default) - `rdf-json` - RDF/JSON format (simpler structure) - `turtle` - Turtle format - `n-triples` - N-Triples format - `rdf-xml` - RDF/XML format
1446
+ :type format: MetadataFormat
1447
+ :param _request_timeout: timeout setting for this request. If one
1448
+ number provided, it will be total request
1449
+ timeout. It can also be a pair (tuple) of
1450
+ (connection, read) timeouts.
1451
+ :type _request_timeout: int, tuple(int, int), optional
1452
+ :param _request_auth: set to override the auth_settings for an a single
1453
+ request; this effectively ignores the
1454
+ authentication in the spec for a single request.
1455
+ :type _request_auth: dict, optional
1456
+ :param _content_type: force content-type for the request.
1457
+ :type _content_type: str, Optional
1458
+ :param _headers: set to override the headers for a single
1459
+ request; this effectively ignores the headers
1460
+ in the spec for a single request.
1461
+ :type _headers: dict, optional
1462
+ :param _host_index: set to override the host_index for a single
1463
+ request; this effectively ignores the host_index
1464
+ in the spec for a single request.
1465
+ :type _host_index: int, optional
1466
+ :return: Returns the result object.
1467
+ """ # noqa: E501
1468
+
1469
+ _param = self._get_catalog_metadata_serialize(
1470
+ context_id=context_id,
1471
+ entry_id=entry_id,
1472
+ x_entrystore_host=x_entrystore_host,
1473
+ entrystore_host=entrystore_host,
1474
+ format=format,
1475
+ _request_auth=_request_auth,
1476
+ _content_type=_content_type,
1477
+ _headers=_headers,
1478
+ _host_index=_host_index,
1479
+ )
1480
+
1481
+ _response_types_map: Dict[str, Optional[str]] = {
1482
+ "200": "Dict[str, object]",
1483
+ "400": "Error",
1484
+ "401": "Error",
1485
+ "404": "Error",
1486
+ "500": "Error",
1487
+ "503": "Error",
1488
+ }
1489
+ response_data = await self.api_client.call_api(
1490
+ *_param, _request_timeout=_request_timeout
1491
+ )
1492
+ return response_data.response
1493
+
1494
+ def _get_catalog_metadata_serialize(
1495
+ self,
1496
+ context_id,
1497
+ entry_id,
1498
+ x_entrystore_host,
1499
+ entrystore_host,
1500
+ format,
1501
+ _request_auth,
1502
+ _content_type,
1503
+ _headers,
1504
+ _host_index,
1505
+ ) -> RequestSerialized:
1506
+
1507
+ _host = None
1508
+
1509
+ _collection_formats: Dict[str, str] = {}
1510
+
1511
+ _path_params: Dict[str, str] = {}
1512
+ _query_params: List[Tuple[str, str]] = []
1513
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1514
+ _form_params: List[Tuple[str, str]] = []
1515
+ _files: Dict[
1516
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1517
+ ] = {}
1518
+ _body_params: Optional[bytes] = None
1519
+
1520
+ # process the path parameters
1521
+ if context_id is not None:
1522
+ _path_params["context_id"] = context_id
1523
+ if entry_id is not None:
1524
+ _path_params["entry_id"] = entry_id
1525
+ # process the query parameters
1526
+ if entrystore_host is not None:
1527
+
1528
+ _query_params.append(("entrystore_host", entrystore_host))
1529
+
1530
+ if format is not None:
1531
+
1532
+ _query_params.append(("format", format.value))
1533
+
1534
+ # process the header parameters
1535
+ if x_entrystore_host is not None:
1536
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
1537
+ # process the form parameters
1538
+ # process the body parameter
1539
+
1540
+ # set the HTTP header `Accept`
1541
+ if "Accept" not in _header_params:
1542
+ _header_params["Accept"] = self.api_client.select_header_accept(
1543
+ [
1544
+ "application/ld+json",
1545
+ "application/rdf+json",
1546
+ "text/turtle",
1547
+ "application/n-triples",
1548
+ "application/rdf+xml",
1549
+ "application/json",
1550
+ ]
1551
+ )
1552
+
1553
+ # authentication setting
1554
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
1555
+
1556
+ return self.api_client.param_serialize(
1557
+ method="GET",
1558
+ resource_path="/catalog/{context_id}/{entry_id}/metadata",
1559
+ path_params=_path_params,
1560
+ query_params=_query_params,
1561
+ header_params=_header_params,
1562
+ body=_body_params,
1563
+ post_params=_form_params,
1564
+ files=_files,
1565
+ auth_settings=_auth_settings,
1566
+ collection_formats=_collection_formats,
1567
+ _host=_host,
1568
+ _request_auth=_request_auth,
1569
+ )
1570
+
1571
+ @validate_call
1572
+ async def list_catalog_dataservices(
1573
+ self,
1574
+ context_id: Annotated[
1575
+ str,
1576
+ Field(
1577
+ strict=True,
1578
+ description="The context (catalog) identifier in EntryStore",
1579
+ ),
1580
+ ],
1581
+ entry_id: Annotated[
1582
+ str,
1583
+ Field(strict=True, description="The entry identifier within the context"),
1584
+ ],
1585
+ x_entrystore_host: Annotated[
1586
+ Optional[StrictStr],
1587
+ Field(
1588
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1589
+ ),
1590
+ ] = None,
1591
+ entrystore_host: Annotated[
1592
+ Optional[StrictStr],
1593
+ Field(
1594
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1595
+ ),
1596
+ ] = None,
1597
+ limit: Annotated[
1598
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
1599
+ Field(description="Results per page"),
1600
+ ] = None,
1601
+ offset: Annotated[
1602
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
1603
+ Field(description="Results to skip before the first one returned"),
1604
+ ] = None,
1605
+ cursor: Annotated[
1606
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
1607
+ Field(
1608
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
1609
+ ),
1610
+ ] = None,
1611
+ query: Annotated[
1612
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
1613
+ Field(
1614
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
1615
+ ),
1616
+ ] = None,
1617
+ sort: Annotated[
1618
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
1619
+ Field(
1620
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
1621
+ ),
1622
+ ] = None,
1623
+ public: Annotated[
1624
+ Optional[StrictBool],
1625
+ Field(
1626
+ description="true: only publicly readable entries; false: only non-public entries"
1627
+ ),
1628
+ ] = None,
1629
+ created_after: Annotated[
1630
+ Optional[datetime], Field(description="Created at or after this instant")
1631
+ ] = None,
1632
+ created_before: Annotated[
1633
+ Optional[datetime], Field(description="Created before this instant")
1634
+ ] = None,
1635
+ modified_after: Annotated[
1636
+ Optional[datetime], Field(description="Modified at or after this instant")
1637
+ ] = None,
1638
+ modified_before: Annotated[
1639
+ Optional[datetime], Field(description="Modified before this instant")
1640
+ ] = None,
1641
+ _request_timeout: Union[
1642
+ None,
1643
+ Annotated[StrictFloat, Field(gt=0)],
1644
+ Tuple[
1645
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1646
+ ],
1647
+ ] = None,
1648
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1649
+ _content_type: Optional[StrictStr] = None,
1650
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1651
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1652
+ ) -> EntityListResponse:
1653
+ """List data services in catalog
1654
+
1655
+ Returns a paginated list of the data services this catalog links with `dcat:service`. Membership is the link, not the context: a data service the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
1656
+
1657
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1658
+ :type context_id: str
1659
+ :param entry_id: The entry identifier within the context (required)
1660
+ :type entry_id: str
1661
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1662
+ :type x_entrystore_host: str
1663
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1664
+ :type entrystore_host: str
1665
+ :param limit: Results per page
1666
+ :type limit: int
1667
+ :param offset: Results to skip before the first one returned
1668
+ :type offset: int
1669
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
1670
+ :type cursor: str
1671
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
1672
+ :type query: str
1673
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
1674
+ :type sort: str
1675
+ :param public: true: only publicly readable entries; false: only non-public entries
1676
+ :type public: bool
1677
+ :param created_after: Created at or after this instant
1678
+ :type created_after: datetime
1679
+ :param created_before: Created before this instant
1680
+ :type created_before: datetime
1681
+ :param modified_after: Modified at or after this instant
1682
+ :type modified_after: datetime
1683
+ :param modified_before: Modified before this instant
1684
+ :type modified_before: datetime
1685
+ :param _request_timeout: timeout setting for this request. If one
1686
+ number provided, it will be total request
1687
+ timeout. It can also be a pair (tuple) of
1688
+ (connection, read) timeouts.
1689
+ :type _request_timeout: int, tuple(int, int), optional
1690
+ :param _request_auth: set to override the auth_settings for an a single
1691
+ request; this effectively ignores the
1692
+ authentication in the spec for a single request.
1693
+ :type _request_auth: dict, optional
1694
+ :param _content_type: force content-type for the request.
1695
+ :type _content_type: str, Optional
1696
+ :param _headers: set to override the headers for a single
1697
+ request; this effectively ignores the headers
1698
+ in the spec for a single request.
1699
+ :type _headers: dict, optional
1700
+ :param _host_index: set to override the host_index for a single
1701
+ request; this effectively ignores the host_index
1702
+ in the spec for a single request.
1703
+ :type _host_index: int, optional
1704
+ :return: Returns the result object.
1705
+ """ # noqa: E501
1706
+
1707
+ _param = self._list_catalog_dataservices_serialize(
1708
+ context_id=context_id,
1709
+ entry_id=entry_id,
1710
+ x_entrystore_host=x_entrystore_host,
1711
+ entrystore_host=entrystore_host,
1712
+ limit=limit,
1713
+ offset=offset,
1714
+ cursor=cursor,
1715
+ query=query,
1716
+ sort=sort,
1717
+ public=public,
1718
+ created_after=created_after,
1719
+ created_before=created_before,
1720
+ modified_after=modified_after,
1721
+ modified_before=modified_before,
1722
+ _request_auth=_request_auth,
1723
+ _content_type=_content_type,
1724
+ _headers=_headers,
1725
+ _host_index=_host_index,
1726
+ )
1727
+
1728
+ _response_types_map: Dict[str, Optional[str]] = {
1729
+ "200": "EntityListResponse",
1730
+ "400": "Error",
1731
+ "401": "Error",
1732
+ "404": "Error",
1733
+ "500": "Error",
1734
+ "503": "Error",
1735
+ }
1736
+ response_data = await self.api_client.call_api(
1737
+ *_param, _request_timeout=_request_timeout
1738
+ )
1739
+ await response_data.read()
1740
+ return self.api_client.response_deserialize(
1741
+ response_data=response_data,
1742
+ response_types_map=_response_types_map,
1743
+ ).data
1744
+
1745
+ @validate_call
1746
+ async def list_catalog_dataservices_with_http_info(
1747
+ self,
1748
+ context_id: Annotated[
1749
+ str,
1750
+ Field(
1751
+ strict=True,
1752
+ description="The context (catalog) identifier in EntryStore",
1753
+ ),
1754
+ ],
1755
+ entry_id: Annotated[
1756
+ str,
1757
+ Field(strict=True, description="The entry identifier within the context"),
1758
+ ],
1759
+ x_entrystore_host: Annotated[
1760
+ Optional[StrictStr],
1761
+ Field(
1762
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1763
+ ),
1764
+ ] = None,
1765
+ entrystore_host: Annotated[
1766
+ Optional[StrictStr],
1767
+ Field(
1768
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1769
+ ),
1770
+ ] = None,
1771
+ limit: Annotated[
1772
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
1773
+ Field(description="Results per page"),
1774
+ ] = None,
1775
+ offset: Annotated[
1776
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
1777
+ Field(description="Results to skip before the first one returned"),
1778
+ ] = None,
1779
+ cursor: Annotated[
1780
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
1781
+ Field(
1782
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
1783
+ ),
1784
+ ] = None,
1785
+ query: Annotated[
1786
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
1787
+ Field(
1788
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
1789
+ ),
1790
+ ] = None,
1791
+ sort: Annotated[
1792
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
1793
+ Field(
1794
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
1795
+ ),
1796
+ ] = None,
1797
+ public: Annotated[
1798
+ Optional[StrictBool],
1799
+ Field(
1800
+ description="true: only publicly readable entries; false: only non-public entries"
1801
+ ),
1802
+ ] = None,
1803
+ created_after: Annotated[
1804
+ Optional[datetime], Field(description="Created at or after this instant")
1805
+ ] = None,
1806
+ created_before: Annotated[
1807
+ Optional[datetime], Field(description="Created before this instant")
1808
+ ] = None,
1809
+ modified_after: Annotated[
1810
+ Optional[datetime], Field(description="Modified at or after this instant")
1811
+ ] = None,
1812
+ modified_before: Annotated[
1813
+ Optional[datetime], Field(description="Modified before this instant")
1814
+ ] = None,
1815
+ _request_timeout: Union[
1816
+ None,
1817
+ Annotated[StrictFloat, Field(gt=0)],
1818
+ Tuple[
1819
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1820
+ ],
1821
+ ] = None,
1822
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1823
+ _content_type: Optional[StrictStr] = None,
1824
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1825
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1826
+ ) -> ApiResponse[EntityListResponse]:
1827
+ """List data services in catalog
1828
+
1829
+ Returns a paginated list of the data services this catalog links with `dcat:service`. Membership is the link, not the context: a data service the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
1830
+
1831
+ :param context_id: The context (catalog) identifier in EntryStore (required)
1832
+ :type context_id: str
1833
+ :param entry_id: The entry identifier within the context (required)
1834
+ :type entry_id: str
1835
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
1836
+ :type x_entrystore_host: str
1837
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
1838
+ :type entrystore_host: str
1839
+ :param limit: Results per page
1840
+ :type limit: int
1841
+ :param offset: Results to skip before the first one returned
1842
+ :type offset: int
1843
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
1844
+ :type cursor: str
1845
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
1846
+ :type query: str
1847
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
1848
+ :type sort: str
1849
+ :param public: true: only publicly readable entries; false: only non-public entries
1850
+ :type public: bool
1851
+ :param created_after: Created at or after this instant
1852
+ :type created_after: datetime
1853
+ :param created_before: Created before this instant
1854
+ :type created_before: datetime
1855
+ :param modified_after: Modified at or after this instant
1856
+ :type modified_after: datetime
1857
+ :param modified_before: Modified before this instant
1858
+ :type modified_before: datetime
1859
+ :param _request_timeout: timeout setting for this request. If one
1860
+ number provided, it will be total request
1861
+ timeout. It can also be a pair (tuple) of
1862
+ (connection, read) timeouts.
1863
+ :type _request_timeout: int, tuple(int, int), optional
1864
+ :param _request_auth: set to override the auth_settings for an a single
1865
+ request; this effectively ignores the
1866
+ authentication in the spec for a single request.
1867
+ :type _request_auth: dict, optional
1868
+ :param _content_type: force content-type for the request.
1869
+ :type _content_type: str, Optional
1870
+ :param _headers: set to override the headers for a single
1871
+ request; this effectively ignores the headers
1872
+ in the spec for a single request.
1873
+ :type _headers: dict, optional
1874
+ :param _host_index: set to override the host_index for a single
1875
+ request; this effectively ignores the host_index
1876
+ in the spec for a single request.
1877
+ :type _host_index: int, optional
1878
+ :return: Returns the result object.
1879
+ """ # noqa: E501
1880
+
1881
+ _param = self._list_catalog_dataservices_serialize(
1882
+ context_id=context_id,
1883
+ entry_id=entry_id,
1884
+ x_entrystore_host=x_entrystore_host,
1885
+ entrystore_host=entrystore_host,
1886
+ limit=limit,
1887
+ offset=offset,
1888
+ cursor=cursor,
1889
+ query=query,
1890
+ sort=sort,
1891
+ public=public,
1892
+ created_after=created_after,
1893
+ created_before=created_before,
1894
+ modified_after=modified_after,
1895
+ modified_before=modified_before,
1896
+ _request_auth=_request_auth,
1897
+ _content_type=_content_type,
1898
+ _headers=_headers,
1899
+ _host_index=_host_index,
1900
+ )
1901
+
1902
+ _response_types_map: Dict[str, Optional[str]] = {
1903
+ "200": "EntityListResponse",
1904
+ "400": "Error",
1905
+ "401": "Error",
1906
+ "404": "Error",
1907
+ "500": "Error",
1908
+ "503": "Error",
1909
+ }
1910
+ response_data = await self.api_client.call_api(
1911
+ *_param, _request_timeout=_request_timeout
1912
+ )
1913
+ await response_data.read()
1914
+ return self.api_client.response_deserialize(
1915
+ response_data=response_data,
1916
+ response_types_map=_response_types_map,
1917
+ )
1918
+
1919
+ @validate_call
1920
+ async def list_catalog_dataservices_without_preload_content(
1921
+ self,
1922
+ context_id: Annotated[
1923
+ str,
1924
+ Field(
1925
+ strict=True,
1926
+ description="The context (catalog) identifier in EntryStore",
1927
+ ),
1928
+ ],
1929
+ entry_id: Annotated[
1930
+ str,
1931
+ Field(strict=True, description="The entry identifier within the context"),
1932
+ ],
1933
+ x_entrystore_host: Annotated[
1934
+ Optional[StrictStr],
1935
+ Field(
1936
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
1937
+ ),
1938
+ ] = None,
1939
+ entrystore_host: Annotated[
1940
+ Optional[StrictStr],
1941
+ Field(
1942
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
1943
+ ),
1944
+ ] = None,
1945
+ limit: Annotated[
1946
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
1947
+ Field(description="Results per page"),
1948
+ ] = None,
1949
+ offset: Annotated[
1950
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
1951
+ Field(description="Results to skip before the first one returned"),
1952
+ ] = None,
1953
+ cursor: Annotated[
1954
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
1955
+ Field(
1956
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
1957
+ ),
1958
+ ] = None,
1959
+ query: Annotated[
1960
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
1961
+ Field(
1962
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
1963
+ ),
1964
+ ] = None,
1965
+ sort: Annotated[
1966
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
1967
+ Field(
1968
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
1969
+ ),
1970
+ ] = None,
1971
+ public: Annotated[
1972
+ Optional[StrictBool],
1973
+ Field(
1974
+ description="true: only publicly readable entries; false: only non-public entries"
1975
+ ),
1976
+ ] = None,
1977
+ created_after: Annotated[
1978
+ Optional[datetime], Field(description="Created at or after this instant")
1979
+ ] = None,
1980
+ created_before: Annotated[
1981
+ Optional[datetime], Field(description="Created before this instant")
1982
+ ] = None,
1983
+ modified_after: Annotated[
1984
+ Optional[datetime], Field(description="Modified at or after this instant")
1985
+ ] = None,
1986
+ modified_before: Annotated[
1987
+ Optional[datetime], Field(description="Modified before this instant")
1988
+ ] = None,
1989
+ _request_timeout: Union[
1990
+ None,
1991
+ Annotated[StrictFloat, Field(gt=0)],
1992
+ Tuple[
1993
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
1994
+ ],
1995
+ ] = None,
1996
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1997
+ _content_type: Optional[StrictStr] = None,
1998
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1999
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2000
+ ) -> RESTResponseType:
2001
+ """List data services in catalog
2002
+
2003
+ Returns a paginated list of the data services this catalog links with `dcat:service`. Membership is the link, not the context: a data service the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
2004
+
2005
+ :param context_id: The context (catalog) identifier in EntryStore (required)
2006
+ :type context_id: str
2007
+ :param entry_id: The entry identifier within the context (required)
2008
+ :type entry_id: str
2009
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
2010
+ :type x_entrystore_host: str
2011
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
2012
+ :type entrystore_host: str
2013
+ :param limit: Results per page
2014
+ :type limit: int
2015
+ :param offset: Results to skip before the first one returned
2016
+ :type offset: int
2017
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
2018
+ :type cursor: str
2019
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
2020
+ :type query: str
2021
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
2022
+ :type sort: str
2023
+ :param public: true: only publicly readable entries; false: only non-public entries
2024
+ :type public: bool
2025
+ :param created_after: Created at or after this instant
2026
+ :type created_after: datetime
2027
+ :param created_before: Created before this instant
2028
+ :type created_before: datetime
2029
+ :param modified_after: Modified at or after this instant
2030
+ :type modified_after: datetime
2031
+ :param modified_before: Modified before this instant
2032
+ :type modified_before: datetime
2033
+ :param _request_timeout: timeout setting for this request. If one
2034
+ number provided, it will be total request
2035
+ timeout. It can also be a pair (tuple) of
2036
+ (connection, read) timeouts.
2037
+ :type _request_timeout: int, tuple(int, int), optional
2038
+ :param _request_auth: set to override the auth_settings for an a single
2039
+ request; this effectively ignores the
2040
+ authentication in the spec for a single request.
2041
+ :type _request_auth: dict, optional
2042
+ :param _content_type: force content-type for the request.
2043
+ :type _content_type: str, Optional
2044
+ :param _headers: set to override the headers for a single
2045
+ request; this effectively ignores the headers
2046
+ in the spec for a single request.
2047
+ :type _headers: dict, optional
2048
+ :param _host_index: set to override the host_index for a single
2049
+ request; this effectively ignores the host_index
2050
+ in the spec for a single request.
2051
+ :type _host_index: int, optional
2052
+ :return: Returns the result object.
2053
+ """ # noqa: E501
2054
+
2055
+ _param = self._list_catalog_dataservices_serialize(
2056
+ context_id=context_id,
2057
+ entry_id=entry_id,
2058
+ x_entrystore_host=x_entrystore_host,
2059
+ entrystore_host=entrystore_host,
2060
+ limit=limit,
2061
+ offset=offset,
2062
+ cursor=cursor,
2063
+ query=query,
2064
+ sort=sort,
2065
+ public=public,
2066
+ created_after=created_after,
2067
+ created_before=created_before,
2068
+ modified_after=modified_after,
2069
+ modified_before=modified_before,
2070
+ _request_auth=_request_auth,
2071
+ _content_type=_content_type,
2072
+ _headers=_headers,
2073
+ _host_index=_host_index,
2074
+ )
2075
+
2076
+ _response_types_map: Dict[str, Optional[str]] = {
2077
+ "200": "EntityListResponse",
2078
+ "400": "Error",
2079
+ "401": "Error",
2080
+ "404": "Error",
2081
+ "500": "Error",
2082
+ "503": "Error",
2083
+ }
2084
+ response_data = await self.api_client.call_api(
2085
+ *_param, _request_timeout=_request_timeout
2086
+ )
2087
+ return response_data.response
2088
+
2089
+ def _list_catalog_dataservices_serialize(
2090
+ self,
2091
+ context_id,
2092
+ entry_id,
2093
+ x_entrystore_host,
2094
+ entrystore_host,
2095
+ limit,
2096
+ offset,
2097
+ cursor,
2098
+ query,
2099
+ sort,
2100
+ public,
2101
+ created_after,
2102
+ created_before,
2103
+ modified_after,
2104
+ modified_before,
2105
+ _request_auth,
2106
+ _content_type,
2107
+ _headers,
2108
+ _host_index,
2109
+ ) -> RequestSerialized:
2110
+
2111
+ _host = None
2112
+
2113
+ _collection_formats: Dict[str, str] = {}
2114
+
2115
+ _path_params: Dict[str, str] = {}
2116
+ _query_params: List[Tuple[str, str]] = []
2117
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2118
+ _form_params: List[Tuple[str, str]] = []
2119
+ _files: Dict[
2120
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2121
+ ] = {}
2122
+ _body_params: Optional[bytes] = None
2123
+
2124
+ # process the path parameters
2125
+ if context_id is not None:
2126
+ _path_params["context_id"] = context_id
2127
+ if entry_id is not None:
2128
+ _path_params["entry_id"] = entry_id
2129
+ # process the query parameters
2130
+ if entrystore_host is not None:
2131
+
2132
+ _query_params.append(("entrystore_host", entrystore_host))
2133
+
2134
+ if limit is not None:
2135
+
2136
+ _query_params.append(("limit", limit))
2137
+
2138
+ if offset is not None:
2139
+
2140
+ _query_params.append(("offset", offset))
2141
+
2142
+ if cursor is not None:
2143
+
2144
+ _query_params.append(("cursor", cursor))
2145
+
2146
+ if query is not None:
2147
+
2148
+ _query_params.append(("query", query))
2149
+
2150
+ if sort is not None:
2151
+
2152
+ _query_params.append(("sort", sort))
2153
+
2154
+ if public is not None:
2155
+
2156
+ _query_params.append(("public", public))
2157
+
2158
+ if created_after is not None:
2159
+ if isinstance(created_after, datetime):
2160
+ _query_params.append(
2161
+ (
2162
+ "created_after",
2163
+ created_after.strftime(
2164
+ self.api_client.configuration.datetime_format
2165
+ ),
2166
+ )
2167
+ )
2168
+ else:
2169
+ _query_params.append(("created_after", created_after))
2170
+
2171
+ if created_before is not None:
2172
+ if isinstance(created_before, datetime):
2173
+ _query_params.append(
2174
+ (
2175
+ "created_before",
2176
+ created_before.strftime(
2177
+ self.api_client.configuration.datetime_format
2178
+ ),
2179
+ )
2180
+ )
2181
+ else:
2182
+ _query_params.append(("created_before", created_before))
2183
+
2184
+ if modified_after is not None:
2185
+ if isinstance(modified_after, datetime):
2186
+ _query_params.append(
2187
+ (
2188
+ "modified_after",
2189
+ modified_after.strftime(
2190
+ self.api_client.configuration.datetime_format
2191
+ ),
2192
+ )
2193
+ )
2194
+ else:
2195
+ _query_params.append(("modified_after", modified_after))
2196
+
2197
+ if modified_before is not None:
2198
+ if isinstance(modified_before, datetime):
2199
+ _query_params.append(
2200
+ (
2201
+ "modified_before",
2202
+ modified_before.strftime(
2203
+ self.api_client.configuration.datetime_format
2204
+ ),
2205
+ )
2206
+ )
2207
+ else:
2208
+ _query_params.append(("modified_before", modified_before))
2209
+
2210
+ # process the header parameters
2211
+ if x_entrystore_host is not None:
2212
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
2213
+ # process the form parameters
2214
+ # process the body parameter
2215
+
2216
+ # set the HTTP header `Accept`
2217
+ if "Accept" not in _header_params:
2218
+ _header_params["Accept"] = self.api_client.select_header_accept(
2219
+ ["application/json"]
2220
+ )
2221
+
2222
+ # authentication setting
2223
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
2224
+
2225
+ return self.api_client.param_serialize(
2226
+ method="GET",
2227
+ resource_path="/catalog/{context_id}/{entry_id}/dataservices",
2228
+ path_params=_path_params,
2229
+ query_params=_query_params,
2230
+ header_params=_header_params,
2231
+ body=_body_params,
2232
+ post_params=_form_params,
2233
+ files=_files,
2234
+ auth_settings=_auth_settings,
2235
+ collection_formats=_collection_formats,
2236
+ _host=_host,
2237
+ _request_auth=_request_auth,
2238
+ )
2239
+
2240
+ @validate_call
2241
+ async def list_catalog_datasets(
2242
+ self,
2243
+ context_id: Annotated[
2244
+ str,
2245
+ Field(
2246
+ strict=True,
2247
+ description="The context (catalog) identifier in EntryStore",
2248
+ ),
2249
+ ],
2250
+ entry_id: Annotated[
2251
+ str,
2252
+ Field(strict=True, description="The entry identifier within the context"),
2253
+ ],
2254
+ x_entrystore_host: Annotated[
2255
+ Optional[StrictStr],
2256
+ Field(
2257
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
2258
+ ),
2259
+ ] = None,
2260
+ entrystore_host: Annotated[
2261
+ Optional[StrictStr],
2262
+ Field(
2263
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
2264
+ ),
2265
+ ] = None,
2266
+ limit: Annotated[
2267
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
2268
+ Field(description="Results per page"),
2269
+ ] = None,
2270
+ offset: Annotated[
2271
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
2272
+ Field(description="Results to skip before the first one returned"),
2273
+ ] = None,
2274
+ cursor: Annotated[
2275
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
2276
+ Field(
2277
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
2278
+ ),
2279
+ ] = None,
2280
+ query: Annotated[
2281
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
2282
+ Field(
2283
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
2284
+ ),
2285
+ ] = None,
2286
+ sort: Annotated[
2287
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
2288
+ Field(
2289
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
2290
+ ),
2291
+ ] = None,
2292
+ public: Annotated[
2293
+ Optional[StrictBool],
2294
+ Field(
2295
+ description="true: only publicly readable entries; false: only non-public entries"
2296
+ ),
2297
+ ] = None,
2298
+ created_after: Annotated[
2299
+ Optional[datetime], Field(description="Created at or after this instant")
2300
+ ] = None,
2301
+ created_before: Annotated[
2302
+ Optional[datetime], Field(description="Created before this instant")
2303
+ ] = None,
2304
+ modified_after: Annotated[
2305
+ Optional[datetime], Field(description="Modified at or after this instant")
2306
+ ] = None,
2307
+ modified_before: Annotated[
2308
+ Optional[datetime], Field(description="Modified before this instant")
2309
+ ] = None,
2310
+ _request_timeout: Union[
2311
+ None,
2312
+ Annotated[StrictFloat, Field(gt=0)],
2313
+ Tuple[
2314
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
2315
+ ],
2316
+ ] = None,
2317
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2318
+ _content_type: Optional[StrictStr] = None,
2319
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2320
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2321
+ ) -> EntityListResponse:
2322
+ """List datasets in catalog
2323
+
2324
+ Returns a paginated list of the datasets this catalog links with `dcat:dataset`. Membership is the link, not the context: a dataset the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
2325
+
2326
+ :param context_id: The context (catalog) identifier in EntryStore (required)
2327
+ :type context_id: str
2328
+ :param entry_id: The entry identifier within the context (required)
2329
+ :type entry_id: str
2330
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
2331
+ :type x_entrystore_host: str
2332
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
2333
+ :type entrystore_host: str
2334
+ :param limit: Results per page
2335
+ :type limit: int
2336
+ :param offset: Results to skip before the first one returned
2337
+ :type offset: int
2338
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
2339
+ :type cursor: str
2340
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
2341
+ :type query: str
2342
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
2343
+ :type sort: str
2344
+ :param public: true: only publicly readable entries; false: only non-public entries
2345
+ :type public: bool
2346
+ :param created_after: Created at or after this instant
2347
+ :type created_after: datetime
2348
+ :param created_before: Created before this instant
2349
+ :type created_before: datetime
2350
+ :param modified_after: Modified at or after this instant
2351
+ :type modified_after: datetime
2352
+ :param modified_before: Modified before this instant
2353
+ :type modified_before: datetime
2354
+ :param _request_timeout: timeout setting for this request. If one
2355
+ number provided, it will be total request
2356
+ timeout. It can also be a pair (tuple) of
2357
+ (connection, read) timeouts.
2358
+ :type _request_timeout: int, tuple(int, int), optional
2359
+ :param _request_auth: set to override the auth_settings for an a single
2360
+ request; this effectively ignores the
2361
+ authentication in the spec for a single request.
2362
+ :type _request_auth: dict, optional
2363
+ :param _content_type: force content-type for the request.
2364
+ :type _content_type: str, Optional
2365
+ :param _headers: set to override the headers for a single
2366
+ request; this effectively ignores the headers
2367
+ in the spec for a single request.
2368
+ :type _headers: dict, optional
2369
+ :param _host_index: set to override the host_index for a single
2370
+ request; this effectively ignores the host_index
2371
+ in the spec for a single request.
2372
+ :type _host_index: int, optional
2373
+ :return: Returns the result object.
2374
+ """ # noqa: E501
2375
+
2376
+ _param = self._list_catalog_datasets_serialize(
2377
+ context_id=context_id,
2378
+ entry_id=entry_id,
2379
+ x_entrystore_host=x_entrystore_host,
2380
+ entrystore_host=entrystore_host,
2381
+ limit=limit,
2382
+ offset=offset,
2383
+ cursor=cursor,
2384
+ query=query,
2385
+ sort=sort,
2386
+ public=public,
2387
+ created_after=created_after,
2388
+ created_before=created_before,
2389
+ modified_after=modified_after,
2390
+ modified_before=modified_before,
2391
+ _request_auth=_request_auth,
2392
+ _content_type=_content_type,
2393
+ _headers=_headers,
2394
+ _host_index=_host_index,
2395
+ )
2396
+
2397
+ _response_types_map: Dict[str, Optional[str]] = {
2398
+ "200": "EntityListResponse",
2399
+ "400": "Error",
2400
+ "401": "Error",
2401
+ "404": "Error",
2402
+ "500": "Error",
2403
+ "503": "Error",
2404
+ }
2405
+ response_data = await self.api_client.call_api(
2406
+ *_param, _request_timeout=_request_timeout
2407
+ )
2408
+ await response_data.read()
2409
+ return self.api_client.response_deserialize(
2410
+ response_data=response_data,
2411
+ response_types_map=_response_types_map,
2412
+ ).data
2413
+
2414
+ @validate_call
2415
+ async def list_catalog_datasets_with_http_info(
2416
+ self,
2417
+ context_id: Annotated[
2418
+ str,
2419
+ Field(
2420
+ strict=True,
2421
+ description="The context (catalog) identifier in EntryStore",
2422
+ ),
2423
+ ],
2424
+ entry_id: Annotated[
2425
+ str,
2426
+ Field(strict=True, description="The entry identifier within the context"),
2427
+ ],
2428
+ x_entrystore_host: Annotated[
2429
+ Optional[StrictStr],
2430
+ Field(
2431
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
2432
+ ),
2433
+ ] = None,
2434
+ entrystore_host: Annotated[
2435
+ Optional[StrictStr],
2436
+ Field(
2437
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
2438
+ ),
2439
+ ] = None,
2440
+ limit: Annotated[
2441
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
2442
+ Field(description="Results per page"),
2443
+ ] = None,
2444
+ offset: Annotated[
2445
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
2446
+ Field(description="Results to skip before the first one returned"),
2447
+ ] = None,
2448
+ cursor: Annotated[
2449
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
2450
+ Field(
2451
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
2452
+ ),
2453
+ ] = None,
2454
+ query: Annotated[
2455
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
2456
+ Field(
2457
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
2458
+ ),
2459
+ ] = None,
2460
+ sort: Annotated[
2461
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
2462
+ Field(
2463
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
2464
+ ),
2465
+ ] = None,
2466
+ public: Annotated[
2467
+ Optional[StrictBool],
2468
+ Field(
2469
+ description="true: only publicly readable entries; false: only non-public entries"
2470
+ ),
2471
+ ] = None,
2472
+ created_after: Annotated[
2473
+ Optional[datetime], Field(description="Created at or after this instant")
2474
+ ] = None,
2475
+ created_before: Annotated[
2476
+ Optional[datetime], Field(description="Created before this instant")
2477
+ ] = None,
2478
+ modified_after: Annotated[
2479
+ Optional[datetime], Field(description="Modified at or after this instant")
2480
+ ] = None,
2481
+ modified_before: Annotated[
2482
+ Optional[datetime], Field(description="Modified before this instant")
2483
+ ] = None,
2484
+ _request_timeout: Union[
2485
+ None,
2486
+ Annotated[StrictFloat, Field(gt=0)],
2487
+ Tuple[
2488
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
2489
+ ],
2490
+ ] = None,
2491
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2492
+ _content_type: Optional[StrictStr] = None,
2493
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2494
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2495
+ ) -> ApiResponse[EntityListResponse]:
2496
+ """List datasets in catalog
2497
+
2498
+ Returns a paginated list of the datasets this catalog links with `dcat:dataset`. Membership is the link, not the context: a dataset the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
2499
+
2500
+ :param context_id: The context (catalog) identifier in EntryStore (required)
2501
+ :type context_id: str
2502
+ :param entry_id: The entry identifier within the context (required)
2503
+ :type entry_id: str
2504
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
2505
+ :type x_entrystore_host: str
2506
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
2507
+ :type entrystore_host: str
2508
+ :param limit: Results per page
2509
+ :type limit: int
2510
+ :param offset: Results to skip before the first one returned
2511
+ :type offset: int
2512
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
2513
+ :type cursor: str
2514
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
2515
+ :type query: str
2516
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
2517
+ :type sort: str
2518
+ :param public: true: only publicly readable entries; false: only non-public entries
2519
+ :type public: bool
2520
+ :param created_after: Created at or after this instant
2521
+ :type created_after: datetime
2522
+ :param created_before: Created before this instant
2523
+ :type created_before: datetime
2524
+ :param modified_after: Modified at or after this instant
2525
+ :type modified_after: datetime
2526
+ :param modified_before: Modified before this instant
2527
+ :type modified_before: datetime
2528
+ :param _request_timeout: timeout setting for this request. If one
2529
+ number provided, it will be total request
2530
+ timeout. It can also be a pair (tuple) of
2531
+ (connection, read) timeouts.
2532
+ :type _request_timeout: int, tuple(int, int), optional
2533
+ :param _request_auth: set to override the auth_settings for an a single
2534
+ request; this effectively ignores the
2535
+ authentication in the spec for a single request.
2536
+ :type _request_auth: dict, optional
2537
+ :param _content_type: force content-type for the request.
2538
+ :type _content_type: str, Optional
2539
+ :param _headers: set to override the headers for a single
2540
+ request; this effectively ignores the headers
2541
+ in the spec for a single request.
2542
+ :type _headers: dict, optional
2543
+ :param _host_index: set to override the host_index for a single
2544
+ request; this effectively ignores the host_index
2545
+ in the spec for a single request.
2546
+ :type _host_index: int, optional
2547
+ :return: Returns the result object.
2548
+ """ # noqa: E501
2549
+
2550
+ _param = self._list_catalog_datasets_serialize(
2551
+ context_id=context_id,
2552
+ entry_id=entry_id,
2553
+ x_entrystore_host=x_entrystore_host,
2554
+ entrystore_host=entrystore_host,
2555
+ limit=limit,
2556
+ offset=offset,
2557
+ cursor=cursor,
2558
+ query=query,
2559
+ sort=sort,
2560
+ public=public,
2561
+ created_after=created_after,
2562
+ created_before=created_before,
2563
+ modified_after=modified_after,
2564
+ modified_before=modified_before,
2565
+ _request_auth=_request_auth,
2566
+ _content_type=_content_type,
2567
+ _headers=_headers,
2568
+ _host_index=_host_index,
2569
+ )
2570
+
2571
+ _response_types_map: Dict[str, Optional[str]] = {
2572
+ "200": "EntityListResponse",
2573
+ "400": "Error",
2574
+ "401": "Error",
2575
+ "404": "Error",
2576
+ "500": "Error",
2577
+ "503": "Error",
2578
+ }
2579
+ response_data = await self.api_client.call_api(
2580
+ *_param, _request_timeout=_request_timeout
2581
+ )
2582
+ await response_data.read()
2583
+ return self.api_client.response_deserialize(
2584
+ response_data=response_data,
2585
+ response_types_map=_response_types_map,
2586
+ )
2587
+
2588
+ @validate_call
2589
+ async def list_catalog_datasets_without_preload_content(
2590
+ self,
2591
+ context_id: Annotated[
2592
+ str,
2593
+ Field(
2594
+ strict=True,
2595
+ description="The context (catalog) identifier in EntryStore",
2596
+ ),
2597
+ ],
2598
+ entry_id: Annotated[
2599
+ str,
2600
+ Field(strict=True, description="The entry identifier within the context"),
2601
+ ],
2602
+ x_entrystore_host: Annotated[
2603
+ Optional[StrictStr],
2604
+ Field(
2605
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
2606
+ ),
2607
+ ] = None,
2608
+ entrystore_host: Annotated[
2609
+ Optional[StrictStr],
2610
+ Field(
2611
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
2612
+ ),
2613
+ ] = None,
2614
+ limit: Annotated[
2615
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
2616
+ Field(description="Results per page"),
2617
+ ] = None,
2618
+ offset: Annotated[
2619
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
2620
+ Field(description="Results to skip before the first one returned"),
2621
+ ] = None,
2622
+ cursor: Annotated[
2623
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
2624
+ Field(
2625
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
2626
+ ),
2627
+ ] = None,
2628
+ query: Annotated[
2629
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
2630
+ Field(
2631
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
2632
+ ),
2633
+ ] = None,
2634
+ sort: Annotated[
2635
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
2636
+ Field(
2637
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
2638
+ ),
2639
+ ] = None,
2640
+ public: Annotated[
2641
+ Optional[StrictBool],
2642
+ Field(
2643
+ description="true: only publicly readable entries; false: only non-public entries"
2644
+ ),
2645
+ ] = None,
2646
+ created_after: Annotated[
2647
+ Optional[datetime], Field(description="Created at or after this instant")
2648
+ ] = None,
2649
+ created_before: Annotated[
2650
+ Optional[datetime], Field(description="Created before this instant")
2651
+ ] = None,
2652
+ modified_after: Annotated[
2653
+ Optional[datetime], Field(description="Modified at or after this instant")
2654
+ ] = None,
2655
+ modified_before: Annotated[
2656
+ Optional[datetime], Field(description="Modified before this instant")
2657
+ ] = None,
2658
+ _request_timeout: Union[
2659
+ None,
2660
+ Annotated[StrictFloat, Field(gt=0)],
2661
+ Tuple[
2662
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
2663
+ ],
2664
+ ] = None,
2665
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2666
+ _content_type: Optional[StrictStr] = None,
2667
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2668
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2669
+ ) -> RESTResponseType:
2670
+ """List datasets in catalog
2671
+
2672
+ Returns a paginated list of the datasets this catalog links with `dcat:dataset`. Membership is the link, not the context: a dataset the catalog does not link is not listed here, and a catalog that links none answers with zero results. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
2673
+
2674
+ :param context_id: The context (catalog) identifier in EntryStore (required)
2675
+ :type context_id: str
2676
+ :param entry_id: The entry identifier within the context (required)
2677
+ :type entry_id: str
2678
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
2679
+ :type x_entrystore_host: str
2680
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
2681
+ :type entrystore_host: str
2682
+ :param limit: Results per page
2683
+ :type limit: int
2684
+ :param offset: Results to skip before the first one returned
2685
+ :type offset: int
2686
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
2687
+ :type cursor: str
2688
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
2689
+ :type query: str
2690
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
2691
+ :type sort: str
2692
+ :param public: true: only publicly readable entries; false: only non-public entries
2693
+ :type public: bool
2694
+ :param created_after: Created at or after this instant
2695
+ :type created_after: datetime
2696
+ :param created_before: Created before this instant
2697
+ :type created_before: datetime
2698
+ :param modified_after: Modified at or after this instant
2699
+ :type modified_after: datetime
2700
+ :param modified_before: Modified before this instant
2701
+ :type modified_before: datetime
2702
+ :param _request_timeout: timeout setting for this request. If one
2703
+ number provided, it will be total request
2704
+ timeout. It can also be a pair (tuple) of
2705
+ (connection, read) timeouts.
2706
+ :type _request_timeout: int, tuple(int, int), optional
2707
+ :param _request_auth: set to override the auth_settings for an a single
2708
+ request; this effectively ignores the
2709
+ authentication in the spec for a single request.
2710
+ :type _request_auth: dict, optional
2711
+ :param _content_type: force content-type for the request.
2712
+ :type _content_type: str, Optional
2713
+ :param _headers: set to override the headers for a single
2714
+ request; this effectively ignores the headers
2715
+ in the spec for a single request.
2716
+ :type _headers: dict, optional
2717
+ :param _host_index: set to override the host_index for a single
2718
+ request; this effectively ignores the host_index
2719
+ in the spec for a single request.
2720
+ :type _host_index: int, optional
2721
+ :return: Returns the result object.
2722
+ """ # noqa: E501
2723
+
2724
+ _param = self._list_catalog_datasets_serialize(
2725
+ context_id=context_id,
2726
+ entry_id=entry_id,
2727
+ x_entrystore_host=x_entrystore_host,
2728
+ entrystore_host=entrystore_host,
2729
+ limit=limit,
2730
+ offset=offset,
2731
+ cursor=cursor,
2732
+ query=query,
2733
+ sort=sort,
2734
+ public=public,
2735
+ created_after=created_after,
2736
+ created_before=created_before,
2737
+ modified_after=modified_after,
2738
+ modified_before=modified_before,
2739
+ _request_auth=_request_auth,
2740
+ _content_type=_content_type,
2741
+ _headers=_headers,
2742
+ _host_index=_host_index,
2743
+ )
2744
+
2745
+ _response_types_map: Dict[str, Optional[str]] = {
2746
+ "200": "EntityListResponse",
2747
+ "400": "Error",
2748
+ "401": "Error",
2749
+ "404": "Error",
2750
+ "500": "Error",
2751
+ "503": "Error",
2752
+ }
2753
+ response_data = await self.api_client.call_api(
2754
+ *_param, _request_timeout=_request_timeout
2755
+ )
2756
+ return response_data.response
2757
+
2758
+ def _list_catalog_datasets_serialize(
2759
+ self,
2760
+ context_id,
2761
+ entry_id,
2762
+ x_entrystore_host,
2763
+ entrystore_host,
2764
+ limit,
2765
+ offset,
2766
+ cursor,
2767
+ query,
2768
+ sort,
2769
+ public,
2770
+ created_after,
2771
+ created_before,
2772
+ modified_after,
2773
+ modified_before,
2774
+ _request_auth,
2775
+ _content_type,
2776
+ _headers,
2777
+ _host_index,
2778
+ ) -> RequestSerialized:
2779
+
2780
+ _host = None
2781
+
2782
+ _collection_formats: Dict[str, str] = {}
2783
+
2784
+ _path_params: Dict[str, str] = {}
2785
+ _query_params: List[Tuple[str, str]] = []
2786
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2787
+ _form_params: List[Tuple[str, str]] = []
2788
+ _files: Dict[
2789
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2790
+ ] = {}
2791
+ _body_params: Optional[bytes] = None
2792
+
2793
+ # process the path parameters
2794
+ if context_id is not None:
2795
+ _path_params["context_id"] = context_id
2796
+ if entry_id is not None:
2797
+ _path_params["entry_id"] = entry_id
2798
+ # process the query parameters
2799
+ if entrystore_host is not None:
2800
+
2801
+ _query_params.append(("entrystore_host", entrystore_host))
2802
+
2803
+ if limit is not None:
2804
+
2805
+ _query_params.append(("limit", limit))
2806
+
2807
+ if offset is not None:
2808
+
2809
+ _query_params.append(("offset", offset))
2810
+
2811
+ if cursor is not None:
2812
+
2813
+ _query_params.append(("cursor", cursor))
2814
+
2815
+ if query is not None:
2816
+
2817
+ _query_params.append(("query", query))
2818
+
2819
+ if sort is not None:
2820
+
2821
+ _query_params.append(("sort", sort))
2822
+
2823
+ if public is not None:
2824
+
2825
+ _query_params.append(("public", public))
2826
+
2827
+ if created_after is not None:
2828
+ if isinstance(created_after, datetime):
2829
+ _query_params.append(
2830
+ (
2831
+ "created_after",
2832
+ created_after.strftime(
2833
+ self.api_client.configuration.datetime_format
2834
+ ),
2835
+ )
2836
+ )
2837
+ else:
2838
+ _query_params.append(("created_after", created_after))
2839
+
2840
+ if created_before is not None:
2841
+ if isinstance(created_before, datetime):
2842
+ _query_params.append(
2843
+ (
2844
+ "created_before",
2845
+ created_before.strftime(
2846
+ self.api_client.configuration.datetime_format
2847
+ ),
2848
+ )
2849
+ )
2850
+ else:
2851
+ _query_params.append(("created_before", created_before))
2852
+
2853
+ if modified_after is not None:
2854
+ if isinstance(modified_after, datetime):
2855
+ _query_params.append(
2856
+ (
2857
+ "modified_after",
2858
+ modified_after.strftime(
2859
+ self.api_client.configuration.datetime_format
2860
+ ),
2861
+ )
2862
+ )
2863
+ else:
2864
+ _query_params.append(("modified_after", modified_after))
2865
+
2866
+ if modified_before is not None:
2867
+ if isinstance(modified_before, datetime):
2868
+ _query_params.append(
2869
+ (
2870
+ "modified_before",
2871
+ modified_before.strftime(
2872
+ self.api_client.configuration.datetime_format
2873
+ ),
2874
+ )
2875
+ )
2876
+ else:
2877
+ _query_params.append(("modified_before", modified_before))
2878
+
2879
+ # process the header parameters
2880
+ if x_entrystore_host is not None:
2881
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
2882
+ # process the form parameters
2883
+ # process the body parameter
2884
+
2885
+ # set the HTTP header `Accept`
2886
+ if "Accept" not in _header_params:
2887
+ _header_params["Accept"] = self.api_client.select_header_accept(
2888
+ ["application/json"]
2889
+ )
2890
+
2891
+ # authentication setting
2892
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
2893
+
2894
+ return self.api_client.param_serialize(
2895
+ method="GET",
2896
+ resource_path="/catalog/{context_id}/{entry_id}/datasets",
2897
+ path_params=_path_params,
2898
+ query_params=_query_params,
2899
+ header_params=_header_params,
2900
+ body=_body_params,
2901
+ post_params=_form_params,
2902
+ files=_files,
2903
+ auth_settings=_auth_settings,
2904
+ collection_formats=_collection_formats,
2905
+ _host=_host,
2906
+ _request_auth=_request_auth,
2907
+ )
2908
+
2909
+ @validate_call
2910
+ async def list_catalogs(
2911
+ self,
2912
+ x_entrystore_host: Annotated[
2913
+ Optional[StrictStr],
2914
+ Field(
2915
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
2916
+ ),
2917
+ ] = None,
2918
+ entrystore_host: Annotated[
2919
+ Optional[StrictStr],
2920
+ Field(
2921
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
2922
+ ),
2923
+ ] = None,
2924
+ limit: Annotated[
2925
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
2926
+ Field(description="Results per page"),
2927
+ ] = None,
2928
+ offset: Annotated[
2929
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
2930
+ Field(description="Results to skip before the first one returned"),
2931
+ ] = None,
2932
+ cursor: Annotated[
2933
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
2934
+ Field(
2935
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
2936
+ ),
2937
+ ] = None,
2938
+ query: Annotated[
2939
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
2940
+ Field(
2941
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
2942
+ ),
2943
+ ] = None,
2944
+ sort: Annotated[
2945
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
2946
+ Field(
2947
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
2948
+ ),
2949
+ ] = None,
2950
+ context: Annotated[
2951
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]],
2952
+ Field(
2953
+ description="Filter by context ID. Can be specified multiple times to include entries from multiple contexts. "
2954
+ ),
2955
+ ] = None,
2956
+ rdf_type: Annotated[
2957
+ Optional[Annotated[str, Field(strict=True, max_length=2048)]],
2958
+ Field(description="Only entries with this rdf:type URI"),
2959
+ ] = None,
2960
+ public: Annotated[
2961
+ Optional[StrictBool],
2962
+ Field(
2963
+ description="true: only publicly readable entries; false: only non-public entries"
2964
+ ),
2965
+ ] = None,
2966
+ created_after: Annotated[
2967
+ Optional[datetime], Field(description="Created at or after this instant")
2968
+ ] = None,
2969
+ created_before: Annotated[
2970
+ Optional[datetime], Field(description="Created before this instant")
2971
+ ] = None,
2972
+ modified_after: Annotated[
2973
+ Optional[datetime], Field(description="Modified at or after this instant")
2974
+ ] = None,
2975
+ modified_before: Annotated[
2976
+ Optional[datetime], Field(description="Modified before this instant")
2977
+ ] = None,
2978
+ entry_type: Annotated[
2979
+ Optional[ListCatalogsEntryTypeParameter],
2980
+ Field(
2981
+ description="Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata "
2982
+ ),
2983
+ ] = None,
2984
+ graph_type: Annotated[
2985
+ Optional[ListCatalogsGraphTypeParameter],
2986
+ Field(
2987
+ description="Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution "
2988
+ ),
2989
+ ] = None,
2990
+ resource_type: Annotated[
2991
+ Optional[ListCatalogsResourceTypeParameter],
2992
+ Field(
2993
+ description="Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data) "
2994
+ ),
2995
+ ] = None,
2996
+ _request_timeout: Union[
2997
+ None,
2998
+ Annotated[StrictFloat, Field(gt=0)],
2999
+ Tuple[
3000
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3001
+ ],
3002
+ ] = None,
3003
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3004
+ _content_type: Optional[StrictStr] = None,
3005
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3006
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3007
+ ) -> EntityListResponse:
3008
+ """List catalogs
3009
+
3010
+ Returns a paginated list of all catalogs. Catalogs are curated collections of metadata about datasets and data services. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
3011
+
3012
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3013
+ :type x_entrystore_host: str
3014
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3015
+ :type entrystore_host: str
3016
+ :param limit: Results per page
3017
+ :type limit: int
3018
+ :param offset: Results to skip before the first one returned
3019
+ :type offset: int
3020
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
3021
+ :type cursor: str
3022
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
3023
+ :type query: str
3024
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
3025
+ :type sort: str
3026
+ :param context: Filter by context ID. Can be specified multiple times to include entries from multiple contexts.
3027
+ :type context: str
3028
+ :param rdf_type: Only entries with this rdf:type URI
3029
+ :type rdf_type: str
3030
+ :param public: true: only publicly readable entries; false: only non-public entries
3031
+ :type public: bool
3032
+ :param created_after: Created at or after this instant
3033
+ :type created_after: datetime
3034
+ :param created_before: Created before this instant
3035
+ :type created_before: datetime
3036
+ :param modified_after: Modified at or after this instant
3037
+ :type modified_after: datetime
3038
+ :param modified_before: Modified before this instant
3039
+ :type modified_before: datetime
3040
+ :param entry_type: Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata
3041
+ :type entry_type: ListCatalogsEntryTypeParameter
3042
+ :param graph_type: Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution
3043
+ :type graph_type: ListCatalogsGraphTypeParameter
3044
+ :param resource_type: Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data)
3045
+ :type resource_type: ListCatalogsResourceTypeParameter
3046
+ :param _request_timeout: timeout setting for this request. If one
3047
+ number provided, it will be total request
3048
+ timeout. It can also be a pair (tuple) of
3049
+ (connection, read) timeouts.
3050
+ :type _request_timeout: int, tuple(int, int), optional
3051
+ :param _request_auth: set to override the auth_settings for an a single
3052
+ request; this effectively ignores the
3053
+ authentication in the spec for a single request.
3054
+ :type _request_auth: dict, optional
3055
+ :param _content_type: force content-type for the request.
3056
+ :type _content_type: str, Optional
3057
+ :param _headers: set to override the headers for a single
3058
+ request; this effectively ignores the headers
3059
+ in the spec for a single request.
3060
+ :type _headers: dict, optional
3061
+ :param _host_index: set to override the host_index for a single
3062
+ request; this effectively ignores the host_index
3063
+ in the spec for a single request.
3064
+ :type _host_index: int, optional
3065
+ :return: Returns the result object.
3066
+ """ # noqa: E501
3067
+
3068
+ _param = self._list_catalogs_serialize(
3069
+ x_entrystore_host=x_entrystore_host,
3070
+ entrystore_host=entrystore_host,
3071
+ limit=limit,
3072
+ offset=offset,
3073
+ cursor=cursor,
3074
+ query=query,
3075
+ sort=sort,
3076
+ context=context,
3077
+ rdf_type=rdf_type,
3078
+ public=public,
3079
+ created_after=created_after,
3080
+ created_before=created_before,
3081
+ modified_after=modified_after,
3082
+ modified_before=modified_before,
3083
+ entry_type=entry_type,
3084
+ graph_type=graph_type,
3085
+ resource_type=resource_type,
3086
+ _request_auth=_request_auth,
3087
+ _content_type=_content_type,
3088
+ _headers=_headers,
3089
+ _host_index=_host_index,
3090
+ )
3091
+
3092
+ _response_types_map: Dict[str, Optional[str]] = {
3093
+ "200": "EntityListResponse",
3094
+ "400": "Error",
3095
+ "401": "Error",
3096
+ "500": "Error",
3097
+ "503": "Error",
3098
+ }
3099
+ response_data = await self.api_client.call_api(
3100
+ *_param, _request_timeout=_request_timeout
3101
+ )
3102
+ await response_data.read()
3103
+ return self.api_client.response_deserialize(
3104
+ response_data=response_data,
3105
+ response_types_map=_response_types_map,
3106
+ ).data
3107
+
3108
+ @validate_call
3109
+ async def list_catalogs_with_http_info(
3110
+ self,
3111
+ x_entrystore_host: Annotated[
3112
+ Optional[StrictStr],
3113
+ Field(
3114
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
3115
+ ),
3116
+ ] = None,
3117
+ entrystore_host: Annotated[
3118
+ Optional[StrictStr],
3119
+ Field(
3120
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
3121
+ ),
3122
+ ] = None,
3123
+ limit: Annotated[
3124
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
3125
+ Field(description="Results per page"),
3126
+ ] = None,
3127
+ offset: Annotated[
3128
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
3129
+ Field(description="Results to skip before the first one returned"),
3130
+ ] = None,
3131
+ cursor: Annotated[
3132
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
3133
+ Field(
3134
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
3135
+ ),
3136
+ ] = None,
3137
+ query: Annotated[
3138
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
3139
+ Field(
3140
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
3141
+ ),
3142
+ ] = None,
3143
+ sort: Annotated[
3144
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
3145
+ Field(
3146
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
3147
+ ),
3148
+ ] = None,
3149
+ context: Annotated[
3150
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]],
3151
+ Field(
3152
+ description="Filter by context ID. Can be specified multiple times to include entries from multiple contexts. "
3153
+ ),
3154
+ ] = None,
3155
+ rdf_type: Annotated[
3156
+ Optional[Annotated[str, Field(strict=True, max_length=2048)]],
3157
+ Field(description="Only entries with this rdf:type URI"),
3158
+ ] = None,
3159
+ public: Annotated[
3160
+ Optional[StrictBool],
3161
+ Field(
3162
+ description="true: only publicly readable entries; false: only non-public entries"
3163
+ ),
3164
+ ] = None,
3165
+ created_after: Annotated[
3166
+ Optional[datetime], Field(description="Created at or after this instant")
3167
+ ] = None,
3168
+ created_before: Annotated[
3169
+ Optional[datetime], Field(description="Created before this instant")
3170
+ ] = None,
3171
+ modified_after: Annotated[
3172
+ Optional[datetime], Field(description="Modified at or after this instant")
3173
+ ] = None,
3174
+ modified_before: Annotated[
3175
+ Optional[datetime], Field(description="Modified before this instant")
3176
+ ] = None,
3177
+ entry_type: Annotated[
3178
+ Optional[ListCatalogsEntryTypeParameter],
3179
+ Field(
3180
+ description="Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata "
3181
+ ),
3182
+ ] = None,
3183
+ graph_type: Annotated[
3184
+ Optional[ListCatalogsGraphTypeParameter],
3185
+ Field(
3186
+ description="Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution "
3187
+ ),
3188
+ ] = None,
3189
+ resource_type: Annotated[
3190
+ Optional[ListCatalogsResourceTypeParameter],
3191
+ Field(
3192
+ description="Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data) "
3193
+ ),
3194
+ ] = None,
3195
+ _request_timeout: Union[
3196
+ None,
3197
+ Annotated[StrictFloat, Field(gt=0)],
3198
+ Tuple[
3199
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3200
+ ],
3201
+ ] = None,
3202
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3203
+ _content_type: Optional[StrictStr] = None,
3204
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3205
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3206
+ ) -> ApiResponse[EntityListResponse]:
3207
+ """List catalogs
3208
+
3209
+ Returns a paginated list of all catalogs. Catalogs are curated collections of metadata about datasets and data services. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
3210
+
3211
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3212
+ :type x_entrystore_host: str
3213
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3214
+ :type entrystore_host: str
3215
+ :param limit: Results per page
3216
+ :type limit: int
3217
+ :param offset: Results to skip before the first one returned
3218
+ :type offset: int
3219
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
3220
+ :type cursor: str
3221
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
3222
+ :type query: str
3223
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
3224
+ :type sort: str
3225
+ :param context: Filter by context ID. Can be specified multiple times to include entries from multiple contexts.
3226
+ :type context: str
3227
+ :param rdf_type: Only entries with this rdf:type URI
3228
+ :type rdf_type: str
3229
+ :param public: true: only publicly readable entries; false: only non-public entries
3230
+ :type public: bool
3231
+ :param created_after: Created at or after this instant
3232
+ :type created_after: datetime
3233
+ :param created_before: Created before this instant
3234
+ :type created_before: datetime
3235
+ :param modified_after: Modified at or after this instant
3236
+ :type modified_after: datetime
3237
+ :param modified_before: Modified before this instant
3238
+ :type modified_before: datetime
3239
+ :param entry_type: Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata
3240
+ :type entry_type: ListCatalogsEntryTypeParameter
3241
+ :param graph_type: Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution
3242
+ :type graph_type: ListCatalogsGraphTypeParameter
3243
+ :param resource_type: Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data)
3244
+ :type resource_type: ListCatalogsResourceTypeParameter
3245
+ :param _request_timeout: timeout setting for this request. If one
3246
+ number provided, it will be total request
3247
+ timeout. It can also be a pair (tuple) of
3248
+ (connection, read) timeouts.
3249
+ :type _request_timeout: int, tuple(int, int), optional
3250
+ :param _request_auth: set to override the auth_settings for an a single
3251
+ request; this effectively ignores the
3252
+ authentication in the spec for a single request.
3253
+ :type _request_auth: dict, optional
3254
+ :param _content_type: force content-type for the request.
3255
+ :type _content_type: str, Optional
3256
+ :param _headers: set to override the headers for a single
3257
+ request; this effectively ignores the headers
3258
+ in the spec for a single request.
3259
+ :type _headers: dict, optional
3260
+ :param _host_index: set to override the host_index for a single
3261
+ request; this effectively ignores the host_index
3262
+ in the spec for a single request.
3263
+ :type _host_index: int, optional
3264
+ :return: Returns the result object.
3265
+ """ # noqa: E501
3266
+
3267
+ _param = self._list_catalogs_serialize(
3268
+ x_entrystore_host=x_entrystore_host,
3269
+ entrystore_host=entrystore_host,
3270
+ limit=limit,
3271
+ offset=offset,
3272
+ cursor=cursor,
3273
+ query=query,
3274
+ sort=sort,
3275
+ context=context,
3276
+ rdf_type=rdf_type,
3277
+ public=public,
3278
+ created_after=created_after,
3279
+ created_before=created_before,
3280
+ modified_after=modified_after,
3281
+ modified_before=modified_before,
3282
+ entry_type=entry_type,
3283
+ graph_type=graph_type,
3284
+ resource_type=resource_type,
3285
+ _request_auth=_request_auth,
3286
+ _content_type=_content_type,
3287
+ _headers=_headers,
3288
+ _host_index=_host_index,
3289
+ )
3290
+
3291
+ _response_types_map: Dict[str, Optional[str]] = {
3292
+ "200": "EntityListResponse",
3293
+ "400": "Error",
3294
+ "401": "Error",
3295
+ "500": "Error",
3296
+ "503": "Error",
3297
+ }
3298
+ response_data = await self.api_client.call_api(
3299
+ *_param, _request_timeout=_request_timeout
3300
+ )
3301
+ await response_data.read()
3302
+ return self.api_client.response_deserialize(
3303
+ response_data=response_data,
3304
+ response_types_map=_response_types_map,
3305
+ )
3306
+
3307
+ @validate_call
3308
+ async def list_catalogs_without_preload_content(
3309
+ self,
3310
+ x_entrystore_host: Annotated[
3311
+ Optional[StrictStr],
3312
+ Field(
3313
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
3314
+ ),
3315
+ ] = None,
3316
+ entrystore_host: Annotated[
3317
+ Optional[StrictStr],
3318
+ Field(
3319
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
3320
+ ),
3321
+ ] = None,
3322
+ limit: Annotated[
3323
+ Optional[Annotated[int, Field(le=100, strict=True, ge=1)]],
3324
+ Field(description="Results per page"),
3325
+ ] = None,
3326
+ offset: Annotated[
3327
+ Optional[Annotated[int, Field(strict=True, ge=0)]],
3328
+ Field(description="Results to skip before the first one returned"),
3329
+ ] = None,
3330
+ cursor: Annotated[
3331
+ Optional[Annotated[str, Field(strict=True, max_length=512)]],
3332
+ Field(
3333
+ description="Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response. "
3334
+ ),
3335
+ ] = None,
3336
+ query: Annotated[
3337
+ Optional[Annotated[str, Field(strict=True, max_length=1000)]],
3338
+ Field(
3339
+ description="Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own. "
3340
+ ),
3341
+ ] = None,
3342
+ sort: Annotated[
3343
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=200)]],
3344
+ Field(
3345
+ description="Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400. "
3346
+ ),
3347
+ ] = None,
3348
+ context: Annotated[
3349
+ Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]],
3350
+ Field(
3351
+ description="Filter by context ID. Can be specified multiple times to include entries from multiple contexts. "
3352
+ ),
3353
+ ] = None,
3354
+ rdf_type: Annotated[
3355
+ Optional[Annotated[str, Field(strict=True, max_length=2048)]],
3356
+ Field(description="Only entries with this rdf:type URI"),
3357
+ ] = None,
3358
+ public: Annotated[
3359
+ Optional[StrictBool],
3360
+ Field(
3361
+ description="true: only publicly readable entries; false: only non-public entries"
3362
+ ),
3363
+ ] = None,
3364
+ created_after: Annotated[
3365
+ Optional[datetime], Field(description="Created at or after this instant")
3366
+ ] = None,
3367
+ created_before: Annotated[
3368
+ Optional[datetime], Field(description="Created before this instant")
3369
+ ] = None,
3370
+ modified_after: Annotated[
3371
+ Optional[datetime], Field(description="Modified at or after this instant")
3372
+ ] = None,
3373
+ modified_before: Annotated[
3374
+ Optional[datetime], Field(description="Modified before this instant")
3375
+ ] = None,
3376
+ entry_type: Annotated[
3377
+ Optional[ListCatalogsEntryTypeParameter],
3378
+ Field(
3379
+ description="Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata "
3380
+ ),
3381
+ ] = None,
3382
+ graph_type: Annotated[
3383
+ Optional[ListCatalogsGraphTypeParameter],
3384
+ Field(
3385
+ description="Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution "
3386
+ ),
3387
+ ] = None,
3388
+ resource_type: Annotated[
3389
+ Optional[ListCatalogsResourceTypeParameter],
3390
+ Field(
3391
+ description="Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data) "
3392
+ ),
3393
+ ] = None,
3394
+ _request_timeout: Union[
3395
+ None,
3396
+ Annotated[StrictFloat, Field(gt=0)],
3397
+ Tuple[
3398
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3399
+ ],
3400
+ ] = None,
3401
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3402
+ _content_type: Optional[StrictStr] = None,
3403
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3404
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3405
+ ) -> RESTResponseType:
3406
+ """List catalogs
3407
+
3408
+ Returns a paginated list of all catalogs. Catalogs are curated collections of metadata about datasets and data services. Authentication is optional. Without authentication, only publicly available entries are returned. Authenticated requests may return additional non-public entries. Answered from an asynchronously updated index: an entry created moments ago may be missing here while reading it by id already returns it.
3409
+
3410
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3411
+ :type x_entrystore_host: str
3412
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3413
+ :type entrystore_host: str
3414
+ :param limit: Results per page
3415
+ :type limit: int
3416
+ :param offset: Results to skip before the first one returned
3417
+ :type offset: int
3418
+ :param cursor: Opaque cursor token for cursor-based pagination. When provided, `offset` is ignored and results start after the position encoded in the cursor. Obtain the cursor value from the `next_cursor` field in a previous response.
3419
+ :type cursor: str
3420
+ :param query: Free-text search. The value is split on whitespace and every term must match, either as a whole word anywhere in the entry's indexed text — title, description and tags — or as a substring of its title. The value is matched literally: characters that Solr treats as syntax are escaped rather than interpreted, so a query cannot select fields or combine clauses of its own.
3421
+ :type query: str
3422
+ :param sort: Sort clauses, comma-separated, highest priority first. A clause is `field+direction`, or `field` alone taking its direction from `sort_order`. The `+` may be sent literally or as `%2B`. Fields: `created`, `modified`, `score`, `title` (the English title; name another as `title.sv`). Anything else is rejected with 400.
3423
+ :type sort: str
3424
+ :param context: Filter by context ID. Can be specified multiple times to include entries from multiple contexts.
3425
+ :type context: str
3426
+ :param rdf_type: Only entries with this rdf:type URI
3427
+ :type rdf_type: str
3428
+ :param public: true: only publicly readable entries; false: only non-public entries
3429
+ :type public: bool
3430
+ :param created_after: Created at or after this instant
3431
+ :type created_after: datetime
3432
+ :param created_before: Created before this instant
3433
+ :type created_before: datetime
3434
+ :param modified_after: Modified at or after this instant
3435
+ :type modified_after: datetime
3436
+ :param modified_before: Modified before this instant
3437
+ :type modified_before: datetime
3438
+ :param entry_type: Filter by entry type. Determines how the entry is stored in EntryStore. - `Local`: Resource maintained in the repository (file, list, user, etc.) - `Link`: Resource not in repository, only metadata is local - `Reference`: Both resource and metadata are external (cached locally) - `LinkReference`: Local metadata with external metadata
3439
+ :type entry_type: ListCatalogsEntryTypeParameter
3440
+ :param graph_type: Filter by graph type. Determines the nature of the resource. - `None`: No special type (regular files, web resources) - `Context`: Container for other entries - `Systemcontext`: Special system context (_contexts, _principals) - `User`: User resource - `Group`: Group resource - `List`: Ordered list of entries - `Resultlist`: Result list from search - `Graph`: RDF graph resource - `String`: String resource - `Pipeline`: Executable pipeline - `PipelineResult`: Result from pipeline execution
3441
+ :type graph_type: ListCatalogsGraphTypeParameter
3442
+ :param resource_type: Filter by resource type. Indicates digital representation availability. - `Information`: Resource has a digital representation - `Resolvable`: Resource resolves to another address - `Named`: No digital representation (abstract entity) - `Unknown`: Representation status unknown (common for harvested data)
3443
+ :type resource_type: ListCatalogsResourceTypeParameter
3444
+ :param _request_timeout: timeout setting for this request. If one
3445
+ number provided, it will be total request
3446
+ timeout. It can also be a pair (tuple) of
3447
+ (connection, read) timeouts.
3448
+ :type _request_timeout: int, tuple(int, int), optional
3449
+ :param _request_auth: set to override the auth_settings for an a single
3450
+ request; this effectively ignores the
3451
+ authentication in the spec for a single request.
3452
+ :type _request_auth: dict, optional
3453
+ :param _content_type: force content-type for the request.
3454
+ :type _content_type: str, Optional
3455
+ :param _headers: set to override the headers for a single
3456
+ request; this effectively ignores the headers
3457
+ in the spec for a single request.
3458
+ :type _headers: dict, optional
3459
+ :param _host_index: set to override the host_index for a single
3460
+ request; this effectively ignores the host_index
3461
+ in the spec for a single request.
3462
+ :type _host_index: int, optional
3463
+ :return: Returns the result object.
3464
+ """ # noqa: E501
3465
+
3466
+ _param = self._list_catalogs_serialize(
3467
+ x_entrystore_host=x_entrystore_host,
3468
+ entrystore_host=entrystore_host,
3469
+ limit=limit,
3470
+ offset=offset,
3471
+ cursor=cursor,
3472
+ query=query,
3473
+ sort=sort,
3474
+ context=context,
3475
+ rdf_type=rdf_type,
3476
+ public=public,
3477
+ created_after=created_after,
3478
+ created_before=created_before,
3479
+ modified_after=modified_after,
3480
+ modified_before=modified_before,
3481
+ entry_type=entry_type,
3482
+ graph_type=graph_type,
3483
+ resource_type=resource_type,
3484
+ _request_auth=_request_auth,
3485
+ _content_type=_content_type,
3486
+ _headers=_headers,
3487
+ _host_index=_host_index,
3488
+ )
3489
+
3490
+ _response_types_map: Dict[str, Optional[str]] = {
3491
+ "200": "EntityListResponse",
3492
+ "400": "Error",
3493
+ "401": "Error",
3494
+ "500": "Error",
3495
+ "503": "Error",
3496
+ }
3497
+ response_data = await self.api_client.call_api(
3498
+ *_param, _request_timeout=_request_timeout
3499
+ )
3500
+ return response_data.response
3501
+
3502
+ def _list_catalogs_serialize(
3503
+ self,
3504
+ x_entrystore_host,
3505
+ entrystore_host,
3506
+ limit,
3507
+ offset,
3508
+ cursor,
3509
+ query,
3510
+ sort,
3511
+ context,
3512
+ rdf_type,
3513
+ public,
3514
+ created_after,
3515
+ created_before,
3516
+ modified_after,
3517
+ modified_before,
3518
+ entry_type,
3519
+ graph_type,
3520
+ resource_type,
3521
+ _request_auth,
3522
+ _content_type,
3523
+ _headers,
3524
+ _host_index,
3525
+ ) -> RequestSerialized:
3526
+
3527
+ _host = None
3528
+
3529
+ _collection_formats: Dict[str, str] = {}
3530
+
3531
+ _path_params: Dict[str, str] = {}
3532
+ _query_params: List[Tuple[str, str]] = []
3533
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3534
+ _form_params: List[Tuple[str, str]] = []
3535
+ _files: Dict[
3536
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3537
+ ] = {}
3538
+ _body_params: Optional[bytes] = None
3539
+
3540
+ # process the path parameters
3541
+ # process the query parameters
3542
+ if entrystore_host is not None:
3543
+
3544
+ _query_params.append(("entrystore_host", entrystore_host))
3545
+
3546
+ if limit is not None:
3547
+
3548
+ _query_params.append(("limit", limit))
3549
+
3550
+ if offset is not None:
3551
+
3552
+ _query_params.append(("offset", offset))
3553
+
3554
+ if cursor is not None:
3555
+
3556
+ _query_params.append(("cursor", cursor))
3557
+
3558
+ if query is not None:
3559
+
3560
+ _query_params.append(("query", query))
3561
+
3562
+ if sort is not None:
3563
+
3564
+ _query_params.append(("sort", sort))
3565
+
3566
+ if context is not None:
3567
+
3568
+ _query_params.append(("context", context))
3569
+
3570
+ if rdf_type is not None:
3571
+
3572
+ _query_params.append(("rdf_type", rdf_type))
3573
+
3574
+ if public is not None:
3575
+
3576
+ _query_params.append(("public", public))
3577
+
3578
+ if created_after is not None:
3579
+ if isinstance(created_after, datetime):
3580
+ _query_params.append(
3581
+ (
3582
+ "created_after",
3583
+ created_after.strftime(
3584
+ self.api_client.configuration.datetime_format
3585
+ ),
3586
+ )
3587
+ )
3588
+ else:
3589
+ _query_params.append(("created_after", created_after))
3590
+
3591
+ if created_before is not None:
3592
+ if isinstance(created_before, datetime):
3593
+ _query_params.append(
3594
+ (
3595
+ "created_before",
3596
+ created_before.strftime(
3597
+ self.api_client.configuration.datetime_format
3598
+ ),
3599
+ )
3600
+ )
3601
+ else:
3602
+ _query_params.append(("created_before", created_before))
3603
+
3604
+ if modified_after is not None:
3605
+ if isinstance(modified_after, datetime):
3606
+ _query_params.append(
3607
+ (
3608
+ "modified_after",
3609
+ modified_after.strftime(
3610
+ self.api_client.configuration.datetime_format
3611
+ ),
3612
+ )
3613
+ )
3614
+ else:
3615
+ _query_params.append(("modified_after", modified_after))
3616
+
3617
+ if modified_before is not None:
3618
+ if isinstance(modified_before, datetime):
3619
+ _query_params.append(
3620
+ (
3621
+ "modified_before",
3622
+ modified_before.strftime(
3623
+ self.api_client.configuration.datetime_format
3624
+ ),
3625
+ )
3626
+ )
3627
+ else:
3628
+ _query_params.append(("modified_before", modified_before))
3629
+
3630
+ if entry_type is not None:
3631
+
3632
+ _query_params.append(("entry_type", entry_type.value))
3633
+
3634
+ if graph_type is not None:
3635
+
3636
+ _query_params.append(("graph_type", graph_type.value))
3637
+
3638
+ if resource_type is not None:
3639
+
3640
+ _query_params.append(("resource_type", resource_type.value))
3641
+
3642
+ # process the header parameters
3643
+ if x_entrystore_host is not None:
3644
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
3645
+ # process the form parameters
3646
+ # process the body parameter
3647
+
3648
+ # set the HTTP header `Accept`
3649
+ if "Accept" not in _header_params:
3650
+ _header_params["Accept"] = self.api_client.select_header_accept(
3651
+ ["application/json"]
3652
+ )
3653
+
3654
+ # authentication setting
3655
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
3656
+
3657
+ return self.api_client.param_serialize(
3658
+ method="GET",
3659
+ resource_path="/catalog",
3660
+ path_params=_path_params,
3661
+ query_params=_query_params,
3662
+ header_params=_header_params,
3663
+ body=_body_params,
3664
+ post_params=_form_params,
3665
+ files=_files,
3666
+ auth_settings=_auth_settings,
3667
+ collection_formats=_collection_formats,
3668
+ _host=_host,
3669
+ _request_auth=_request_auth,
3670
+ )
3671
+
3672
+ @validate_call
3673
+ async def update_catalog_metadata(
3674
+ self,
3675
+ context_id: Annotated[
3676
+ str,
3677
+ Field(
3678
+ strict=True,
3679
+ description="The context (catalog) identifier in EntryStore",
3680
+ ),
3681
+ ],
3682
+ entry_id: Annotated[
3683
+ str,
3684
+ Field(strict=True, description="The entry identifier within the context"),
3685
+ ],
3686
+ metadata_request: Annotated[
3687
+ MetadataRequest,
3688
+ Field(
3689
+ description="Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
3690
+ ),
3691
+ ],
3692
+ x_entrystore_host: Annotated[
3693
+ Optional[StrictStr],
3694
+ Field(
3695
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
3696
+ ),
3697
+ ] = None,
3698
+ entrystore_host: Annotated[
3699
+ Optional[StrictStr],
3700
+ Field(
3701
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
3702
+ ),
3703
+ ] = None,
3704
+ _request_timeout: Union[
3705
+ None,
3706
+ Annotated[StrictFloat, Field(gt=0)],
3707
+ Tuple[
3708
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3709
+ ],
3710
+ ] = None,
3711
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3712
+ _content_type: Optional[StrictStr] = None,
3713
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3714
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3715
+ ) -> Dict[str, object]:
3716
+ """Update catalog metadata
3717
+
3718
+ Replaces the DCAT-AP metadata for a specific catalog. The request body is forwarded directly to EntryStore without structural transformation; use the Content-Type header to select the RDF serialization (application/ld+json, text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json). This is a full replacement, not a partial update. Requires authentication with write access to the entry's context.
3719
+
3720
+ :param context_id: The context (catalog) identifier in EntryStore (required)
3721
+ :type context_id: str
3722
+ :param entry_id: The entry identifier within the context (required)
3723
+ :type entry_id: str
3724
+ :param metadata_request: Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
3725
+ :type metadata_request: MetadataRequest
3726
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3727
+ :type x_entrystore_host: str
3728
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3729
+ :type entrystore_host: str
3730
+ :param _request_timeout: timeout setting for this request. If one
3731
+ number provided, it will be total request
3732
+ timeout. It can also be a pair (tuple) of
3733
+ (connection, read) timeouts.
3734
+ :type _request_timeout: int, tuple(int, int), optional
3735
+ :param _request_auth: set to override the auth_settings for an a single
3736
+ request; this effectively ignores the
3737
+ authentication in the spec for a single request.
3738
+ :type _request_auth: dict, optional
3739
+ :param _content_type: force content-type for the request.
3740
+ :type _content_type: str, Optional
3741
+ :param _headers: set to override the headers for a single
3742
+ request; this effectively ignores the headers
3743
+ in the spec for a single request.
3744
+ :type _headers: dict, optional
3745
+ :param _host_index: set to override the host_index for a single
3746
+ request; this effectively ignores the host_index
3747
+ in the spec for a single request.
3748
+ :type _host_index: int, optional
3749
+ :return: Returns the result object.
3750
+ """ # noqa: E501
3751
+
3752
+ _param = self._update_catalog_metadata_serialize(
3753
+ context_id=context_id,
3754
+ entry_id=entry_id,
3755
+ metadata_request=metadata_request,
3756
+ x_entrystore_host=x_entrystore_host,
3757
+ entrystore_host=entrystore_host,
3758
+ _request_auth=_request_auth,
3759
+ _content_type=_content_type,
3760
+ _headers=_headers,
3761
+ _host_index=_host_index,
3762
+ )
3763
+
3764
+ _response_types_map: Dict[str, Optional[str]] = {
3765
+ "200": "Dict[str, object]",
3766
+ "400": "Error",
3767
+ "401": "Error",
3768
+ "403": "Error",
3769
+ "404": "Error",
3770
+ "409": "Error",
3771
+ "422": "ValidationResponse",
3772
+ "500": "Error",
3773
+ "503": "Error",
3774
+ }
3775
+ response_data = await self.api_client.call_api(
3776
+ *_param, _request_timeout=_request_timeout
3777
+ )
3778
+ await response_data.read()
3779
+ return self.api_client.response_deserialize(
3780
+ response_data=response_data,
3781
+ response_types_map=_response_types_map,
3782
+ ).data
3783
+
3784
+ @validate_call
3785
+ async def update_catalog_metadata_with_http_info(
3786
+ self,
3787
+ context_id: Annotated[
3788
+ str,
3789
+ Field(
3790
+ strict=True,
3791
+ description="The context (catalog) identifier in EntryStore",
3792
+ ),
3793
+ ],
3794
+ entry_id: Annotated[
3795
+ str,
3796
+ Field(strict=True, description="The entry identifier within the context"),
3797
+ ],
3798
+ metadata_request: Annotated[
3799
+ MetadataRequest,
3800
+ Field(
3801
+ description="Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
3802
+ ),
3803
+ ],
3804
+ x_entrystore_host: Annotated[
3805
+ Optional[StrictStr],
3806
+ Field(
3807
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
3808
+ ),
3809
+ ] = None,
3810
+ entrystore_host: Annotated[
3811
+ Optional[StrictStr],
3812
+ Field(
3813
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
3814
+ ),
3815
+ ] = None,
3816
+ _request_timeout: Union[
3817
+ None,
3818
+ Annotated[StrictFloat, Field(gt=0)],
3819
+ Tuple[
3820
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3821
+ ],
3822
+ ] = None,
3823
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3824
+ _content_type: Optional[StrictStr] = None,
3825
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3826
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3827
+ ) -> ApiResponse[Dict[str, object]]:
3828
+ """Update catalog metadata
3829
+
3830
+ Replaces the DCAT-AP metadata for a specific catalog. The request body is forwarded directly to EntryStore without structural transformation; use the Content-Type header to select the RDF serialization (application/ld+json, text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json). This is a full replacement, not a partial update. Requires authentication with write access to the entry's context.
3831
+
3832
+ :param context_id: The context (catalog) identifier in EntryStore (required)
3833
+ :type context_id: str
3834
+ :param entry_id: The entry identifier within the context (required)
3835
+ :type entry_id: str
3836
+ :param metadata_request: Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
3837
+ :type metadata_request: MetadataRequest
3838
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3839
+ :type x_entrystore_host: str
3840
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3841
+ :type entrystore_host: str
3842
+ :param _request_timeout: timeout setting for this request. If one
3843
+ number provided, it will be total request
3844
+ timeout. It can also be a pair (tuple) of
3845
+ (connection, read) timeouts.
3846
+ :type _request_timeout: int, tuple(int, int), optional
3847
+ :param _request_auth: set to override the auth_settings for an a single
3848
+ request; this effectively ignores the
3849
+ authentication in the spec for a single request.
3850
+ :type _request_auth: dict, optional
3851
+ :param _content_type: force content-type for the request.
3852
+ :type _content_type: str, Optional
3853
+ :param _headers: set to override the headers for a single
3854
+ request; this effectively ignores the headers
3855
+ in the spec for a single request.
3856
+ :type _headers: dict, optional
3857
+ :param _host_index: set to override the host_index for a single
3858
+ request; this effectively ignores the host_index
3859
+ in the spec for a single request.
3860
+ :type _host_index: int, optional
3861
+ :return: Returns the result object.
3862
+ """ # noqa: E501
3863
+
3864
+ _param = self._update_catalog_metadata_serialize(
3865
+ context_id=context_id,
3866
+ entry_id=entry_id,
3867
+ metadata_request=metadata_request,
3868
+ x_entrystore_host=x_entrystore_host,
3869
+ entrystore_host=entrystore_host,
3870
+ _request_auth=_request_auth,
3871
+ _content_type=_content_type,
3872
+ _headers=_headers,
3873
+ _host_index=_host_index,
3874
+ )
3875
+
3876
+ _response_types_map: Dict[str, Optional[str]] = {
3877
+ "200": "Dict[str, object]",
3878
+ "400": "Error",
3879
+ "401": "Error",
3880
+ "403": "Error",
3881
+ "404": "Error",
3882
+ "409": "Error",
3883
+ "422": "ValidationResponse",
3884
+ "500": "Error",
3885
+ "503": "Error",
3886
+ }
3887
+ response_data = await self.api_client.call_api(
3888
+ *_param, _request_timeout=_request_timeout
3889
+ )
3890
+ await response_data.read()
3891
+ return self.api_client.response_deserialize(
3892
+ response_data=response_data,
3893
+ response_types_map=_response_types_map,
3894
+ )
3895
+
3896
+ @validate_call
3897
+ async def update_catalog_metadata_without_preload_content(
3898
+ self,
3899
+ context_id: Annotated[
3900
+ str,
3901
+ Field(
3902
+ strict=True,
3903
+ description="The context (catalog) identifier in EntryStore",
3904
+ ),
3905
+ ],
3906
+ entry_id: Annotated[
3907
+ str,
3908
+ Field(strict=True, description="The entry identifier within the context"),
3909
+ ],
3910
+ metadata_request: Annotated[
3911
+ MetadataRequest,
3912
+ Field(
3913
+ description="Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). "
3914
+ ),
3915
+ ],
3916
+ x_entrystore_host: Annotated[
3917
+ Optional[StrictStr],
3918
+ Field(
3919
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
3920
+ ),
3921
+ ] = None,
3922
+ entrystore_host: Annotated[
3923
+ Optional[StrictStr],
3924
+ Field(
3925
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
3926
+ ),
3927
+ ] = None,
3928
+ _request_timeout: Union[
3929
+ None,
3930
+ Annotated[StrictFloat, Field(gt=0)],
3931
+ Tuple[
3932
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
3933
+ ],
3934
+ ] = None,
3935
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3936
+ _content_type: Optional[StrictStr] = None,
3937
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3938
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3939
+ ) -> RESTResponseType:
3940
+ """Update catalog metadata
3941
+
3942
+ Replaces the DCAT-AP metadata for a specific catalog. The request body is forwarded directly to EntryStore without structural transformation; use the Content-Type header to select the RDF serialization (application/ld+json, text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json). This is a full replacement, not a partial update. Requires authentication with write access to the entry's context.
3943
+
3944
+ :param context_id: The context (catalog) identifier in EntryStore (required)
3945
+ :type context_id: str
3946
+ :param entry_id: The entry identifier within the context (required)
3947
+ :type entry_id: str
3948
+ :param metadata_request: Metadata that replaces the entry's current metadata. With Content-Type application/ld+json the structured MetadataRequest schema applies. Raw RDF is also accepted and forwarded verbatim to EntryStore when the Content-Type is text/turtle, application/rdf+xml, application/n-triples, or application/rdf+json (see the endpoint description). (required)
3949
+ :type metadata_request: MetadataRequest
3950
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
3951
+ :type x_entrystore_host: str
3952
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
3953
+ :type entrystore_host: str
3954
+ :param _request_timeout: timeout setting for this request. If one
3955
+ number provided, it will be total request
3956
+ timeout. It can also be a pair (tuple) of
3957
+ (connection, read) timeouts.
3958
+ :type _request_timeout: int, tuple(int, int), optional
3959
+ :param _request_auth: set to override the auth_settings for an a single
3960
+ request; this effectively ignores the
3961
+ authentication in the spec for a single request.
3962
+ :type _request_auth: dict, optional
3963
+ :param _content_type: force content-type for the request.
3964
+ :type _content_type: str, Optional
3965
+ :param _headers: set to override the headers for a single
3966
+ request; this effectively ignores the headers
3967
+ in the spec for a single request.
3968
+ :type _headers: dict, optional
3969
+ :param _host_index: set to override the host_index for a single
3970
+ request; this effectively ignores the host_index
3971
+ in the spec for a single request.
3972
+ :type _host_index: int, optional
3973
+ :return: Returns the result object.
3974
+ """ # noqa: E501
3975
+
3976
+ _param = self._update_catalog_metadata_serialize(
3977
+ context_id=context_id,
3978
+ entry_id=entry_id,
3979
+ metadata_request=metadata_request,
3980
+ x_entrystore_host=x_entrystore_host,
3981
+ entrystore_host=entrystore_host,
3982
+ _request_auth=_request_auth,
3983
+ _content_type=_content_type,
3984
+ _headers=_headers,
3985
+ _host_index=_host_index,
3986
+ )
3987
+
3988
+ _response_types_map: Dict[str, Optional[str]] = {
3989
+ "200": "Dict[str, object]",
3990
+ "400": "Error",
3991
+ "401": "Error",
3992
+ "403": "Error",
3993
+ "404": "Error",
3994
+ "409": "Error",
3995
+ "422": "ValidationResponse",
3996
+ "500": "Error",
3997
+ "503": "Error",
3998
+ }
3999
+ response_data = await self.api_client.call_api(
4000
+ *_param, _request_timeout=_request_timeout
4001
+ )
4002
+ return response_data.response
4003
+
4004
+ def _update_catalog_metadata_serialize(
4005
+ self,
4006
+ context_id,
4007
+ entry_id,
4008
+ metadata_request,
4009
+ x_entrystore_host,
4010
+ entrystore_host,
4011
+ _request_auth,
4012
+ _content_type,
4013
+ _headers,
4014
+ _host_index,
4015
+ ) -> RequestSerialized:
4016
+
4017
+ _host = None
4018
+
4019
+ _collection_formats: Dict[str, str] = {}
4020
+
4021
+ _path_params: Dict[str, str] = {}
4022
+ _query_params: List[Tuple[str, str]] = []
4023
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4024
+ _form_params: List[Tuple[str, str]] = []
4025
+ _files: Dict[
4026
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
4027
+ ] = {}
4028
+ _body_params: Optional[bytes] = None
4029
+
4030
+ # process the path parameters
4031
+ if context_id is not None:
4032
+ _path_params["context_id"] = context_id
4033
+ if entry_id is not None:
4034
+ _path_params["entry_id"] = entry_id
4035
+ # process the query parameters
4036
+ if entrystore_host is not None:
4037
+
4038
+ _query_params.append(("entrystore_host", entrystore_host))
4039
+
4040
+ # process the header parameters
4041
+ if x_entrystore_host is not None:
4042
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
4043
+ # process the form parameters
4044
+ # process the body parameter
4045
+ if metadata_request is not None:
4046
+ _body_params = metadata_request
4047
+
4048
+ # set the HTTP header `Accept`
4049
+ if "Accept" not in _header_params:
4050
+ _header_params["Accept"] = self.api_client.select_header_accept(
4051
+ ["application/ld+json", "application/json"]
4052
+ )
4053
+
4054
+ # set the HTTP header `Content-Type`
4055
+ if _content_type:
4056
+ _header_params["Content-Type"] = _content_type
4057
+ else:
4058
+ _default_content_type = self.api_client.select_header_content_type(
4059
+ ["application/ld+json"]
4060
+ )
4061
+ if _default_content_type is not None:
4062
+ _header_params["Content-Type"] = _default_content_type
4063
+
4064
+ # authentication setting
4065
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
4066
+
4067
+ return self.api_client.param_serialize(
4068
+ method="PUT",
4069
+ resource_path="/catalog/{context_id}/{entry_id}/metadata",
4070
+ path_params=_path_params,
4071
+ query_params=_query_params,
4072
+ header_params=_header_params,
4073
+ body=_body_params,
4074
+ post_params=_form_params,
4075
+ files=_files,
4076
+ auth_settings=_auth_settings,
4077
+ collection_formats=_collection_formats,
4078
+ _host=_host,
4079
+ _request_auth=_request_auth,
4080
+ )
4081
+
4082
+ @validate_call
4083
+ async def validate_catalog(
4084
+ self,
4085
+ context_id: Annotated[
4086
+ str,
4087
+ Field(
4088
+ strict=True,
4089
+ description="The context (catalog) identifier in EntryStore",
4090
+ ),
4091
+ ],
4092
+ entry_id: Annotated[
4093
+ str,
4094
+ Field(strict=True, description="The entry identifier within the context"),
4095
+ ],
4096
+ profile: Annotated[
4097
+ ValidationProfile,
4098
+ Field(
4099
+ description="DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) "
4100
+ ),
4101
+ ],
4102
+ x_entrystore_host: Annotated[
4103
+ Optional[StrictStr],
4104
+ Field(
4105
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
4106
+ ),
4107
+ ] = None,
4108
+ entrystore_host: Annotated[
4109
+ Optional[StrictStr],
4110
+ Field(
4111
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
4112
+ ),
4113
+ ] = None,
4114
+ _request_timeout: Union[
4115
+ None,
4116
+ Annotated[StrictFloat, Field(gt=0)],
4117
+ Tuple[
4118
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
4119
+ ],
4120
+ ] = None,
4121
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4122
+ _content_type: Optional[StrictStr] = None,
4123
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4124
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4125
+ ) -> ValidationResponse:
4126
+ """Validate catalog metadata
4127
+
4128
+ Retrieves the stored metadata for this catalog entry from EntryStore and validates it against the SHACL shapes for the requested profile (a DCAT-AP profile, or the domain's custom shapes with profile=custom). No request body is needed — the endpoint operates on the entry's existing metadata, similar to how the `/metadata` endpoint returns it. Returns a detailed report with any violations, warnings, or informational findings. A 200 response with `conforms: false` is expected when the metadata has issues — it means validation completed successfully. `conforms: true` alone does not mean the metadata was checked. If no shape in the profile targets the entry — usually because its `rdf:type` is missing or wrong — the report conforms with nothing in it. `summary.targetedShapes` counts the shapes that had something to check; `0` means nothing was. Authentication is optional. Public entries can be validated without authentication. Authenticated requests may validate additional non-public entries.
4129
+
4130
+ :param context_id: The context (catalog) identifier in EntryStore (required)
4131
+ :type context_id: str
4132
+ :param entry_id: The entry identifier within the context (required)
4133
+ :type entry_id: str
4134
+ :param profile: DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) (required)
4135
+ :type profile: ValidationProfile
4136
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
4137
+ :type x_entrystore_host: str
4138
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
4139
+ :type entrystore_host: str
4140
+ :param _request_timeout: timeout setting for this request. If one
4141
+ number provided, it will be total request
4142
+ timeout. It can also be a pair (tuple) of
4143
+ (connection, read) timeouts.
4144
+ :type _request_timeout: int, tuple(int, int), optional
4145
+ :param _request_auth: set to override the auth_settings for an a single
4146
+ request; this effectively ignores the
4147
+ authentication in the spec for a single request.
4148
+ :type _request_auth: dict, optional
4149
+ :param _content_type: force content-type for the request.
4150
+ :type _content_type: str, Optional
4151
+ :param _headers: set to override the headers for a single
4152
+ request; this effectively ignores the headers
4153
+ in the spec for a single request.
4154
+ :type _headers: dict, optional
4155
+ :param _host_index: set to override the host_index for a single
4156
+ request; this effectively ignores the host_index
4157
+ in the spec for a single request.
4158
+ :type _host_index: int, optional
4159
+ :return: Returns the result object.
4160
+ """ # noqa: E501
4161
+
4162
+ _param = self._validate_catalog_serialize(
4163
+ context_id=context_id,
4164
+ entry_id=entry_id,
4165
+ profile=profile,
4166
+ x_entrystore_host=x_entrystore_host,
4167
+ entrystore_host=entrystore_host,
4168
+ _request_auth=_request_auth,
4169
+ _content_type=_content_type,
4170
+ _headers=_headers,
4171
+ _host_index=_host_index,
4172
+ )
4173
+
4174
+ _response_types_map: Dict[str, Optional[str]] = {
4175
+ "200": "ValidationResponse",
4176
+ "400": "Error",
4177
+ "401": "Error",
4178
+ "404": "Error",
4179
+ "500": "Error",
4180
+ "503": "Error",
4181
+ }
4182
+ response_data = await self.api_client.call_api(
4183
+ *_param, _request_timeout=_request_timeout
4184
+ )
4185
+ await response_data.read()
4186
+ return self.api_client.response_deserialize(
4187
+ response_data=response_data,
4188
+ response_types_map=_response_types_map,
4189
+ ).data
4190
+
4191
+ @validate_call
4192
+ async def validate_catalog_with_http_info(
4193
+ self,
4194
+ context_id: Annotated[
4195
+ str,
4196
+ Field(
4197
+ strict=True,
4198
+ description="The context (catalog) identifier in EntryStore",
4199
+ ),
4200
+ ],
4201
+ entry_id: Annotated[
4202
+ str,
4203
+ Field(strict=True, description="The entry identifier within the context"),
4204
+ ],
4205
+ profile: Annotated[
4206
+ ValidationProfile,
4207
+ Field(
4208
+ description="DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) "
4209
+ ),
4210
+ ],
4211
+ x_entrystore_host: Annotated[
4212
+ Optional[StrictStr],
4213
+ Field(
4214
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
4215
+ ),
4216
+ ] = None,
4217
+ entrystore_host: Annotated[
4218
+ Optional[StrictStr],
4219
+ Field(
4220
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
4221
+ ),
4222
+ ] = None,
4223
+ _request_timeout: Union[
4224
+ None,
4225
+ Annotated[StrictFloat, Field(gt=0)],
4226
+ Tuple[
4227
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
4228
+ ],
4229
+ ] = None,
4230
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4231
+ _content_type: Optional[StrictStr] = None,
4232
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4233
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4234
+ ) -> ApiResponse[ValidationResponse]:
4235
+ """Validate catalog metadata
4236
+
4237
+ Retrieves the stored metadata for this catalog entry from EntryStore and validates it against the SHACL shapes for the requested profile (a DCAT-AP profile, or the domain's custom shapes with profile=custom). No request body is needed — the endpoint operates on the entry's existing metadata, similar to how the `/metadata` endpoint returns it. Returns a detailed report with any violations, warnings, or informational findings. A 200 response with `conforms: false` is expected when the metadata has issues — it means validation completed successfully. `conforms: true` alone does not mean the metadata was checked. If no shape in the profile targets the entry — usually because its `rdf:type` is missing or wrong — the report conforms with nothing in it. `summary.targetedShapes` counts the shapes that had something to check; `0` means nothing was. Authentication is optional. Public entries can be validated without authentication. Authenticated requests may validate additional non-public entries.
4238
+
4239
+ :param context_id: The context (catalog) identifier in EntryStore (required)
4240
+ :type context_id: str
4241
+ :param entry_id: The entry identifier within the context (required)
4242
+ :type entry_id: str
4243
+ :param profile: DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) (required)
4244
+ :type profile: ValidationProfile
4245
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
4246
+ :type x_entrystore_host: str
4247
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
4248
+ :type entrystore_host: str
4249
+ :param _request_timeout: timeout setting for this request. If one
4250
+ number provided, it will be total request
4251
+ timeout. It can also be a pair (tuple) of
4252
+ (connection, read) timeouts.
4253
+ :type _request_timeout: int, tuple(int, int), optional
4254
+ :param _request_auth: set to override the auth_settings for an a single
4255
+ request; this effectively ignores the
4256
+ authentication in the spec for a single request.
4257
+ :type _request_auth: dict, optional
4258
+ :param _content_type: force content-type for the request.
4259
+ :type _content_type: str, Optional
4260
+ :param _headers: set to override the headers for a single
4261
+ request; this effectively ignores the headers
4262
+ in the spec for a single request.
4263
+ :type _headers: dict, optional
4264
+ :param _host_index: set to override the host_index for a single
4265
+ request; this effectively ignores the host_index
4266
+ in the spec for a single request.
4267
+ :type _host_index: int, optional
4268
+ :return: Returns the result object.
4269
+ """ # noqa: E501
4270
+
4271
+ _param = self._validate_catalog_serialize(
4272
+ context_id=context_id,
4273
+ entry_id=entry_id,
4274
+ profile=profile,
4275
+ x_entrystore_host=x_entrystore_host,
4276
+ entrystore_host=entrystore_host,
4277
+ _request_auth=_request_auth,
4278
+ _content_type=_content_type,
4279
+ _headers=_headers,
4280
+ _host_index=_host_index,
4281
+ )
4282
+
4283
+ _response_types_map: Dict[str, Optional[str]] = {
4284
+ "200": "ValidationResponse",
4285
+ "400": "Error",
4286
+ "401": "Error",
4287
+ "404": "Error",
4288
+ "500": "Error",
4289
+ "503": "Error",
4290
+ }
4291
+ response_data = await self.api_client.call_api(
4292
+ *_param, _request_timeout=_request_timeout
4293
+ )
4294
+ await response_data.read()
4295
+ return self.api_client.response_deserialize(
4296
+ response_data=response_data,
4297
+ response_types_map=_response_types_map,
4298
+ )
4299
+
4300
+ @validate_call
4301
+ async def validate_catalog_without_preload_content(
4302
+ self,
4303
+ context_id: Annotated[
4304
+ str,
4305
+ Field(
4306
+ strict=True,
4307
+ description="The context (catalog) identifier in EntryStore",
4308
+ ),
4309
+ ],
4310
+ entry_id: Annotated[
4311
+ str,
4312
+ Field(strict=True, description="The entry identifier within the context"),
4313
+ ],
4314
+ profile: Annotated[
4315
+ ValidationProfile,
4316
+ Field(
4317
+ description="DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) "
4318
+ ),
4319
+ ],
4320
+ x_entrystore_host: Annotated[
4321
+ Optional[StrictStr],
4322
+ Field(
4323
+ description="Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance. "
4324
+ ),
4325
+ ] = None,
4326
+ entrystore_host: Annotated[
4327
+ Optional[StrictStr],
4328
+ Field(
4329
+ description="Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance. "
4330
+ ),
4331
+ ] = None,
4332
+ _request_timeout: Union[
4333
+ None,
4334
+ Annotated[StrictFloat, Field(gt=0)],
4335
+ Tuple[
4336
+ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]
4337
+ ],
4338
+ ] = None,
4339
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4340
+ _content_type: Optional[StrictStr] = None,
4341
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4342
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4343
+ ) -> RESTResponseType:
4344
+ """Validate catalog metadata
4345
+
4346
+ Retrieves the stored metadata for this catalog entry from EntryStore and validates it against the SHACL shapes for the requested profile (a DCAT-AP profile, or the domain's custom shapes with profile=custom). No request body is needed — the endpoint operates on the entry's existing metadata, similar to how the `/metadata` endpoint returns it. Returns a detailed report with any violations, warnings, or informational findings. A 200 response with `conforms: false` is expected when the metadata has issues — it means validation completed successfully. `conforms: true` alone does not mean the metadata was checked. If no shape in the profile targets the entry — usually because its `rdf:type` is missing or wrong — the report conforms with nothing in it. `summary.targetedShapes` counts the shapes that had something to check; `0` means nothing was. Authentication is optional. Public entries can be validated without authentication. Authenticated requests may validate additional non-public entries.
4347
+
4348
+ :param context_id: The context (catalog) identifier in EntryStore (required)
4349
+ :type context_id: str
4350
+ :param entry_id: The entry identifier within the context (required)
4351
+ :type entry_id: str
4352
+ :param profile: DCAT-AP profile to validate against. Determines which SHACL shapes are used. Supported profiles: - `dcat-ap-2.1.1` - EU DCAT-AP 2.1.1 (stable, widely adopted) - `dcat-ap-3.0` - EU DCAT-AP 3.0 (current version) (required)
4353
+ :type profile: ValidationProfile
4354
+ :param x_entrystore_host: Target EntryStore instance (alternative to the entrystore_host query parameter, which wins if both are sent). The value has to be an instance this deployment has been configured to allow; any other host is refused with 400. Omit it for the deployment's default instance.
4355
+ :type x_entrystore_host: str
4356
+ :param entrystore_host: Target EntryStore instance. Overrides the X-Entrystore-Host header if both are provided. The value has to be an instance this deployment has been configured to allow; any other host is refused with 400, so a target you cannot reach is a request to the deployment's operator, not a different value to try. Omit it for the deployment's default instance.
4357
+ :type entrystore_host: str
4358
+ :param _request_timeout: timeout setting for this request. If one
4359
+ number provided, it will be total request
4360
+ timeout. It can also be a pair (tuple) of
4361
+ (connection, read) timeouts.
4362
+ :type _request_timeout: int, tuple(int, int), optional
4363
+ :param _request_auth: set to override the auth_settings for an a single
4364
+ request; this effectively ignores the
4365
+ authentication in the spec for a single request.
4366
+ :type _request_auth: dict, optional
4367
+ :param _content_type: force content-type for the request.
4368
+ :type _content_type: str, Optional
4369
+ :param _headers: set to override the headers for a single
4370
+ request; this effectively ignores the headers
4371
+ in the spec for a single request.
4372
+ :type _headers: dict, optional
4373
+ :param _host_index: set to override the host_index for a single
4374
+ request; this effectively ignores the host_index
4375
+ in the spec for a single request.
4376
+ :type _host_index: int, optional
4377
+ :return: Returns the result object.
4378
+ """ # noqa: E501
4379
+
4380
+ _param = self._validate_catalog_serialize(
4381
+ context_id=context_id,
4382
+ entry_id=entry_id,
4383
+ profile=profile,
4384
+ x_entrystore_host=x_entrystore_host,
4385
+ entrystore_host=entrystore_host,
4386
+ _request_auth=_request_auth,
4387
+ _content_type=_content_type,
4388
+ _headers=_headers,
4389
+ _host_index=_host_index,
4390
+ )
4391
+
4392
+ _response_types_map: Dict[str, Optional[str]] = {
4393
+ "200": "ValidationResponse",
4394
+ "400": "Error",
4395
+ "401": "Error",
4396
+ "404": "Error",
4397
+ "500": "Error",
4398
+ "503": "Error",
4399
+ }
4400
+ response_data = await self.api_client.call_api(
4401
+ *_param, _request_timeout=_request_timeout
4402
+ )
4403
+ return response_data.response
4404
+
4405
+ def _validate_catalog_serialize(
4406
+ self,
4407
+ context_id,
4408
+ entry_id,
4409
+ profile,
4410
+ x_entrystore_host,
4411
+ entrystore_host,
4412
+ _request_auth,
4413
+ _content_type,
4414
+ _headers,
4415
+ _host_index,
4416
+ ) -> RequestSerialized:
4417
+
4418
+ _host = None
4419
+
4420
+ _collection_formats: Dict[str, str] = {}
4421
+
4422
+ _path_params: Dict[str, str] = {}
4423
+ _query_params: List[Tuple[str, str]] = []
4424
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4425
+ _form_params: List[Tuple[str, str]] = []
4426
+ _files: Dict[
4427
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
4428
+ ] = {}
4429
+ _body_params: Optional[bytes] = None
4430
+
4431
+ # process the path parameters
4432
+ if context_id is not None:
4433
+ _path_params["context_id"] = context_id
4434
+ if entry_id is not None:
4435
+ _path_params["entry_id"] = entry_id
4436
+ # process the query parameters
4437
+ if entrystore_host is not None:
4438
+
4439
+ _query_params.append(("entrystore_host", entrystore_host))
4440
+
4441
+ if profile is not None:
4442
+
4443
+ _query_params.append(("profile", profile.value))
4444
+
4445
+ # process the header parameters
4446
+ if x_entrystore_host is not None:
4447
+ _header_params["X-Entrystore-Host"] = x_entrystore_host
4448
+ # process the form parameters
4449
+ # process the body parameter
4450
+
4451
+ # set the HTTP header `Accept`
4452
+ if "Accept" not in _header_params:
4453
+ _header_params["Accept"] = self.api_client.select_header_accept(
4454
+ ["application/json"]
4455
+ )
4456
+
4457
+ # authentication setting
4458
+ _auth_settings: List[str] = ["auth_token", "auth_header"]
4459
+
4460
+ return self.api_client.param_serialize(
4461
+ method="GET",
4462
+ resource_path="/catalog/{context_id}/{entry_id}/validate",
4463
+ path_params=_path_params,
4464
+ query_params=_query_params,
4465
+ header_params=_header_params,
4466
+ body=_body_params,
4467
+ post_params=_form_params,
4468
+ files=_files,
4469
+ auth_settings=_auth_settings,
4470
+ collection_formats=_collection_formats,
4471
+ _host=_host,
4472
+ _request_auth=_request_auth,
4473
+ )