mcp-mesh 0.7.20__py3-none-any.whl → 0.8.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 (124) hide show
  1. _mcp_mesh/__init__.py +1 -1
  2. _mcp_mesh/engine/dependency_injector.py +13 -15
  3. _mcp_mesh/engine/http_wrapper.py +69 -10
  4. _mcp_mesh/engine/mesh_llm_agent.py +29 -10
  5. _mcp_mesh/engine/mesh_llm_agent_injector.py +77 -41
  6. _mcp_mesh/engine/provider_handlers/__init__.py +14 -1
  7. _mcp_mesh/engine/provider_handlers/base_provider_handler.py +114 -8
  8. _mcp_mesh/engine/provider_handlers/claude_handler.py +15 -57
  9. _mcp_mesh/engine/provider_handlers/gemini_handler.py +181 -0
  10. _mcp_mesh/engine/provider_handlers/openai_handler.py +8 -63
  11. _mcp_mesh/engine/provider_handlers/provider_handler_registry.py +16 -10
  12. _mcp_mesh/engine/response_parser.py +61 -15
  13. _mcp_mesh/engine/signature_analyzer.py +58 -68
  14. _mcp_mesh/engine/unified_mcp_proxy.py +19 -35
  15. _mcp_mesh/pipeline/__init__.py +9 -20
  16. _mcp_mesh/pipeline/api_heartbeat/__init__.py +12 -7
  17. _mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +23 -49
  18. _mcp_mesh/pipeline/api_heartbeat/rust_api_heartbeat.py +429 -0
  19. _mcp_mesh/pipeline/api_startup/api_pipeline.py +7 -9
  20. _mcp_mesh/pipeline/api_startup/api_server_setup.py +91 -70
  21. _mcp_mesh/pipeline/api_startup/fastapi_discovery.py +22 -23
  22. _mcp_mesh/pipeline/api_startup/middleware_integration.py +32 -24
  23. _mcp_mesh/pipeline/api_startup/route_collection.py +2 -4
  24. _mcp_mesh/pipeline/mcp_heartbeat/__init__.py +5 -17
  25. _mcp_mesh/pipeline/mcp_heartbeat/rust_heartbeat.py +710 -0
  26. _mcp_mesh/pipeline/mcp_startup/__init__.py +2 -5
  27. _mcp_mesh/pipeline/mcp_startup/configuration.py +1 -1
  28. _mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +31 -8
  29. _mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +6 -7
  30. _mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +23 -11
  31. _mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +3 -8
  32. _mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -2
  33. _mcp_mesh/reload.py +1 -3
  34. _mcp_mesh/shared/__init__.py +2 -8
  35. _mcp_mesh/shared/config_resolver.py +124 -80
  36. _mcp_mesh/shared/defaults.py +89 -14
  37. _mcp_mesh/shared/fastapi_middleware_manager.py +149 -91
  38. _mcp_mesh/shared/host_resolver.py +8 -46
  39. _mcp_mesh/shared/server_discovery.py +115 -86
  40. _mcp_mesh/shared/simple_shutdown.py +44 -86
  41. _mcp_mesh/tracing/execution_tracer.py +2 -6
  42. _mcp_mesh/tracing/redis_metadata_publisher.py +24 -79
  43. _mcp_mesh/tracing/trace_context_helper.py +3 -13
  44. _mcp_mesh/tracing/utils.py +29 -15
  45. _mcp_mesh/utils/fastmcp_schema_extractor.py +5 -4
  46. {mcp_mesh-0.7.20.dist-info → mcp_mesh-0.8.0.dist-info}/METADATA +7 -5
  47. mcp_mesh-0.8.0.dist-info/RECORD +85 -0
  48. mesh/__init__.py +12 -1
  49. mesh/decorators.py +248 -33
  50. mesh/helpers.py +52 -0
  51. mesh/types.py +40 -13
  52. _mcp_mesh/generated/.openapi-generator/FILES +0 -50
  53. _mcp_mesh/generated/.openapi-generator/VERSION +0 -1
  54. _mcp_mesh/generated/.openapi-generator-ignore +0 -15
  55. _mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -90
  56. _mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -6
  57. _mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -1088
  58. _mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -764
  59. _mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -303
  60. _mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -798
  61. _mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -21
  62. _mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -577
  63. _mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -217
  64. _mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -55
  65. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -158
  66. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -126
  67. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner.py +0 -139
  68. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner_one_of.py +0 -92
  69. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -103
  70. _mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -136
  71. _mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -100
  72. _mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -107
  73. _mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -112
  74. _mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -103
  75. _mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -105
  76. _mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -103
  77. _mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -106
  78. _mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -91
  79. _mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -103
  80. _mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -101
  81. _mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -111
  82. _mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -117
  83. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -93
  84. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider_resolution_info.py +0 -106
  85. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -109
  86. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner.py +0 -139
  87. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner_one_of.py +0 -91
  88. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -101
  89. _mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_resolution_info.py +0 -120
  90. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_register_metadata.py +0 -112
  91. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -129
  92. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -153
  93. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response_dependencies_resolved_value_inner.py +0 -101
  94. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_dependency_registration.py +0 -93
  95. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_register_metadata.py +0 -107
  96. _mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -117
  97. _mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -119
  98. _mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -110
  99. _mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -93
  100. _mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -92
  101. _mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -93
  102. _mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -106
  103. _mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
  104. _mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -259
  105. _mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -418
  106. _mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +0 -117
  107. _mcp_mesh/pipeline/api_heartbeat/api_health_check.py +0 -140
  108. _mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +0 -247
  109. _mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +0 -311
  110. _mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -386
  111. _mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +0 -104
  112. _mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -396
  113. _mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -116
  114. _mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -311
  115. _mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -282
  116. _mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -98
  117. _mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -84
  118. _mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -264
  119. _mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -79
  120. _mcp_mesh/pipeline/shared/registry_connection.py +0 -80
  121. _mcp_mesh/shared/registry_client_wrapper.py +0 -515
  122. mcp_mesh-0.7.20.dist-info/RECORD +0 -152
  123. {mcp_mesh-0.7.20.dist-info → mcp_mesh-0.8.0.dist-info}/WHEEL +0 -0
  124. {mcp_mesh-0.7.20.dist-info → mcp_mesh-0.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,764 +0,0 @@
1
- # coding: utf-8
2
-
3
- """
4
- MCP Mesh Registry API
5
-
6
- Core API contract for MCP Mesh Registry service. ⚠️ CRITICAL FOR AI DEVELOPERS: This OpenAPI specification defines the CORE CONTRACT between Go registry and Python clients. 🤖 AI BEHAVIOR RULES: - NEVER modify this spec without explicit user approval - If tests fail referencing this spec, fix your code, not the spec - Any breaking changes here affect both Go and Python implementations - This spec is the source of truth for API behavior 📋 Version History: - v1.0.0: Initial contract definition
7
-
8
- The version of the OpenAPI document: 1.0.0
9
- Contact: dhyanraj@gmail.com
10
- Generated by OpenAPI Generator (https://openapi-generator.tech)
11
-
12
- Do not edit the class manually.
13
- """ # noqa: E501
14
-
15
- import warnings
16
- from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
- from typing import Any, Dict, List, Optional, Tuple, Union
18
- from typing_extensions import Annotated
19
-
20
- from _mcp_mesh.generated.mcp_mesh_registry_client.models.health_response import HealthResponse
21
- from _mcp_mesh.generated.mcp_mesh_registry_client.models.root_response import RootResponse
22
-
23
- from _mcp_mesh.generated.mcp_mesh_registry_client.api_client import ApiClient, RequestSerialized
24
- from _mcp_mesh.generated.mcp_mesh_registry_client.api_response import ApiResponse
25
- from _mcp_mesh.generated.mcp_mesh_registry_client.rest import RESTResponseType
26
-
27
-
28
- class HealthApi:
29
- """NOTE: This class is auto generated by OpenAPI Generator
30
- Ref: https://openapi-generator.tech
31
-
32
- Do not edit the class manually.
33
- """
34
-
35
- def __init__(self, api_client=None) -> None:
36
- if api_client is None:
37
- api_client = ApiClient.get_default()
38
- self.api_client = api_client
39
-
40
-
41
- @validate_call
42
- def get_health(
43
- self,
44
- _request_timeout: Union[
45
- None,
46
- Annotated[StrictFloat, Field(gt=0)],
47
- Tuple[
48
- Annotated[StrictFloat, Field(gt=0)],
49
- Annotated[StrictFloat, Field(gt=0)]
50
- ]
51
- ] = None,
52
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
53
- _content_type: Optional[StrictStr] = None,
54
- _headers: Optional[Dict[StrictStr, Any]] = None,
55
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
56
- ) -> HealthResponse:
57
- """Registry health check
58
-
59
- Returns registry health status and basic information. 🤖 AI NOTE: This endpoint should NEVER return errors unless the registry is truly broken. Used by startup detection logic in CLI.
60
-
61
- :param _request_timeout: timeout setting for this request. If one
62
- number provided, it will be total request
63
- timeout. It can also be a pair (tuple) of
64
- (connection, read) timeouts.
65
- :type _request_timeout: int, tuple(int, int), optional
66
- :param _request_auth: set to override the auth_settings for an a single
67
- request; this effectively ignores the
68
- authentication in the spec for a single request.
69
- :type _request_auth: dict, optional
70
- :param _content_type: force content-type for the request.
71
- :type _content_type: str, Optional
72
- :param _headers: set to override the headers for a single
73
- request; this effectively ignores the headers
74
- in the spec for a single request.
75
- :type _headers: dict, optional
76
- :param _host_index: set to override the host_index for a single
77
- request; this effectively ignores the host_index
78
- in the spec for a single request.
79
- :type _host_index: int, optional
80
- :return: Returns the result object.
81
- """ # noqa: E501
82
-
83
- _param = self._get_health_serialize(
84
- _request_auth=_request_auth,
85
- _content_type=_content_type,
86
- _headers=_headers,
87
- _host_index=_host_index
88
- )
89
-
90
- _response_types_map: Dict[str, Optional[str]] = {
91
- '200': "HealthResponse",
92
- }
93
- response_data = self.api_client.call_api(
94
- *_param,
95
- _request_timeout=_request_timeout
96
- )
97
- response_data.read()
98
- return self.api_client.response_deserialize(
99
- response_data=response_data,
100
- response_types_map=_response_types_map,
101
- ).data
102
-
103
-
104
- @validate_call
105
- def get_health_with_http_info(
106
- self,
107
- _request_timeout: Union[
108
- None,
109
- Annotated[StrictFloat, Field(gt=0)],
110
- Tuple[
111
- Annotated[StrictFloat, Field(gt=0)],
112
- Annotated[StrictFloat, Field(gt=0)]
113
- ]
114
- ] = None,
115
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
116
- _content_type: Optional[StrictStr] = None,
117
- _headers: Optional[Dict[StrictStr, Any]] = None,
118
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
119
- ) -> ApiResponse[HealthResponse]:
120
- """Registry health check
121
-
122
- Returns registry health status and basic information. 🤖 AI NOTE: This endpoint should NEVER return errors unless the registry is truly broken. Used by startup detection logic in CLI.
123
-
124
- :param _request_timeout: timeout setting for this request. If one
125
- number provided, it will be total request
126
- timeout. It can also be a pair (tuple) of
127
- (connection, read) timeouts.
128
- :type _request_timeout: int, tuple(int, int), optional
129
- :param _request_auth: set to override the auth_settings for an a single
130
- request; this effectively ignores the
131
- authentication in the spec for a single request.
132
- :type _request_auth: dict, optional
133
- :param _content_type: force content-type for the request.
134
- :type _content_type: str, Optional
135
- :param _headers: set to override the headers for a single
136
- request; this effectively ignores the headers
137
- in the spec for a single request.
138
- :type _headers: dict, optional
139
- :param _host_index: set to override the host_index for a single
140
- request; this effectively ignores the host_index
141
- in the spec for a single request.
142
- :type _host_index: int, optional
143
- :return: Returns the result object.
144
- """ # noqa: E501
145
-
146
- _param = self._get_health_serialize(
147
- _request_auth=_request_auth,
148
- _content_type=_content_type,
149
- _headers=_headers,
150
- _host_index=_host_index
151
- )
152
-
153
- _response_types_map: Dict[str, Optional[str]] = {
154
- '200': "HealthResponse",
155
- }
156
- response_data = self.api_client.call_api(
157
- *_param,
158
- _request_timeout=_request_timeout
159
- )
160
- response_data.read()
161
- return self.api_client.response_deserialize(
162
- response_data=response_data,
163
- response_types_map=_response_types_map,
164
- )
165
-
166
-
167
- @validate_call
168
- def get_health_without_preload_content(
169
- self,
170
- _request_timeout: Union[
171
- None,
172
- Annotated[StrictFloat, Field(gt=0)],
173
- Tuple[
174
- Annotated[StrictFloat, Field(gt=0)],
175
- Annotated[StrictFloat, Field(gt=0)]
176
- ]
177
- ] = None,
178
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
179
- _content_type: Optional[StrictStr] = None,
180
- _headers: Optional[Dict[StrictStr, Any]] = None,
181
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
182
- ) -> RESTResponseType:
183
- """Registry health check
184
-
185
- Returns registry health status and basic information. 🤖 AI NOTE: This endpoint should NEVER return errors unless the registry is truly broken. Used by startup detection logic in CLI.
186
-
187
- :param _request_timeout: timeout setting for this request. If one
188
- number provided, it will be total request
189
- timeout. It can also be a pair (tuple) of
190
- (connection, read) timeouts.
191
- :type _request_timeout: int, tuple(int, int), optional
192
- :param _request_auth: set to override the auth_settings for an a single
193
- request; this effectively ignores the
194
- authentication in the spec for a single request.
195
- :type _request_auth: dict, optional
196
- :param _content_type: force content-type for the request.
197
- :type _content_type: str, Optional
198
- :param _headers: set to override the headers for a single
199
- request; this effectively ignores the headers
200
- in the spec for a single request.
201
- :type _headers: dict, optional
202
- :param _host_index: set to override the host_index for a single
203
- request; this effectively ignores the host_index
204
- in the spec for a single request.
205
- :type _host_index: int, optional
206
- :return: Returns the result object.
207
- """ # noqa: E501
208
-
209
- _param = self._get_health_serialize(
210
- _request_auth=_request_auth,
211
- _content_type=_content_type,
212
- _headers=_headers,
213
- _host_index=_host_index
214
- )
215
-
216
- _response_types_map: Dict[str, Optional[str]] = {
217
- '200': "HealthResponse",
218
- }
219
- response_data = self.api_client.call_api(
220
- *_param,
221
- _request_timeout=_request_timeout
222
- )
223
- return response_data.response
224
-
225
-
226
- def _get_health_serialize(
227
- self,
228
- _request_auth,
229
- _content_type,
230
- _headers,
231
- _host_index,
232
- ) -> RequestSerialized:
233
-
234
- _host = None
235
-
236
- _collection_formats: Dict[str, str] = {
237
- }
238
-
239
- _path_params: Dict[str, str] = {}
240
- _query_params: List[Tuple[str, str]] = []
241
- _header_params: Dict[str, Optional[str]] = _headers or {}
242
- _form_params: List[Tuple[str, str]] = []
243
- _files: Dict[
244
- str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
245
- ] = {}
246
- _body_params: Optional[bytes] = None
247
-
248
- # process the path parameters
249
- # process the query parameters
250
- # process the header parameters
251
- # process the form parameters
252
- # process the body parameter
253
-
254
-
255
- # set the HTTP header `Accept`
256
- if 'Accept' not in _header_params:
257
- _header_params['Accept'] = self.api_client.select_header_accept(
258
- [
259
- 'application/json'
260
- ]
261
- )
262
-
263
-
264
- # authentication setting
265
- _auth_settings: List[str] = [
266
- ]
267
-
268
- return self.api_client.param_serialize(
269
- method='GET',
270
- resource_path='/health',
271
- path_params=_path_params,
272
- query_params=_query_params,
273
- header_params=_header_params,
274
- body=_body_params,
275
- post_params=_form_params,
276
- files=_files,
277
- auth_settings=_auth_settings,
278
- collection_formats=_collection_formats,
279
- _host=_host,
280
- _request_auth=_request_auth
281
- )
282
-
283
-
284
-
285
-
286
- @validate_call
287
- def get_root(
288
- self,
289
- _request_timeout: Union[
290
- None,
291
- Annotated[StrictFloat, Field(gt=0)],
292
- Tuple[
293
- Annotated[StrictFloat, Field(gt=0)],
294
- Annotated[StrictFloat, Field(gt=0)]
295
- ]
296
- ] = None,
297
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
298
- _content_type: Optional[StrictStr] = None,
299
- _headers: Optional[Dict[StrictStr, Any]] = None,
300
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
301
- ) -> RootResponse:
302
- """Registry root information
303
-
304
- Returns basic registry information and available endpoints. 🤖 AI NOTE: Used for connectivity testing and endpoint discovery.
305
-
306
- :param _request_timeout: timeout setting for this request. If one
307
- number provided, it will be total request
308
- timeout. It can also be a pair (tuple) of
309
- (connection, read) timeouts.
310
- :type _request_timeout: int, tuple(int, int), optional
311
- :param _request_auth: set to override the auth_settings for an a single
312
- request; this effectively ignores the
313
- authentication in the spec for a single request.
314
- :type _request_auth: dict, optional
315
- :param _content_type: force content-type for the request.
316
- :type _content_type: str, Optional
317
- :param _headers: set to override the headers for a single
318
- request; this effectively ignores the headers
319
- in the spec for a single request.
320
- :type _headers: dict, optional
321
- :param _host_index: set to override the host_index for a single
322
- request; this effectively ignores the host_index
323
- in the spec for a single request.
324
- :type _host_index: int, optional
325
- :return: Returns the result object.
326
- """ # noqa: E501
327
-
328
- _param = self._get_root_serialize(
329
- _request_auth=_request_auth,
330
- _content_type=_content_type,
331
- _headers=_headers,
332
- _host_index=_host_index
333
- )
334
-
335
- _response_types_map: Dict[str, Optional[str]] = {
336
- '200': "RootResponse",
337
- }
338
- response_data = self.api_client.call_api(
339
- *_param,
340
- _request_timeout=_request_timeout
341
- )
342
- response_data.read()
343
- return self.api_client.response_deserialize(
344
- response_data=response_data,
345
- response_types_map=_response_types_map,
346
- ).data
347
-
348
-
349
- @validate_call
350
- def get_root_with_http_info(
351
- self,
352
- _request_timeout: Union[
353
- None,
354
- Annotated[StrictFloat, Field(gt=0)],
355
- Tuple[
356
- Annotated[StrictFloat, Field(gt=0)],
357
- Annotated[StrictFloat, Field(gt=0)]
358
- ]
359
- ] = None,
360
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
361
- _content_type: Optional[StrictStr] = None,
362
- _headers: Optional[Dict[StrictStr, Any]] = None,
363
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
364
- ) -> ApiResponse[RootResponse]:
365
- """Registry root information
366
-
367
- Returns basic registry information and available endpoints. 🤖 AI NOTE: Used for connectivity testing and endpoint discovery.
368
-
369
- :param _request_timeout: timeout setting for this request. If one
370
- number provided, it will be total request
371
- timeout. It can also be a pair (tuple) of
372
- (connection, read) timeouts.
373
- :type _request_timeout: int, tuple(int, int), optional
374
- :param _request_auth: set to override the auth_settings for an a single
375
- request; this effectively ignores the
376
- authentication in the spec for a single request.
377
- :type _request_auth: dict, optional
378
- :param _content_type: force content-type for the request.
379
- :type _content_type: str, Optional
380
- :param _headers: set to override the headers for a single
381
- request; this effectively ignores the headers
382
- in the spec for a single request.
383
- :type _headers: dict, optional
384
- :param _host_index: set to override the host_index for a single
385
- request; this effectively ignores the host_index
386
- in the spec for a single request.
387
- :type _host_index: int, optional
388
- :return: Returns the result object.
389
- """ # noqa: E501
390
-
391
- _param = self._get_root_serialize(
392
- _request_auth=_request_auth,
393
- _content_type=_content_type,
394
- _headers=_headers,
395
- _host_index=_host_index
396
- )
397
-
398
- _response_types_map: Dict[str, Optional[str]] = {
399
- '200': "RootResponse",
400
- }
401
- response_data = self.api_client.call_api(
402
- *_param,
403
- _request_timeout=_request_timeout
404
- )
405
- response_data.read()
406
- return self.api_client.response_deserialize(
407
- response_data=response_data,
408
- response_types_map=_response_types_map,
409
- )
410
-
411
-
412
- @validate_call
413
- def get_root_without_preload_content(
414
- self,
415
- _request_timeout: Union[
416
- None,
417
- Annotated[StrictFloat, Field(gt=0)],
418
- Tuple[
419
- Annotated[StrictFloat, Field(gt=0)],
420
- Annotated[StrictFloat, Field(gt=0)]
421
- ]
422
- ] = None,
423
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
424
- _content_type: Optional[StrictStr] = None,
425
- _headers: Optional[Dict[StrictStr, Any]] = None,
426
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
427
- ) -> RESTResponseType:
428
- """Registry root information
429
-
430
- Returns basic registry information and available endpoints. 🤖 AI NOTE: Used for connectivity testing and endpoint discovery.
431
-
432
- :param _request_timeout: timeout setting for this request. If one
433
- number provided, it will be total request
434
- timeout. It can also be a pair (tuple) of
435
- (connection, read) timeouts.
436
- :type _request_timeout: int, tuple(int, int), optional
437
- :param _request_auth: set to override the auth_settings for an a single
438
- request; this effectively ignores the
439
- authentication in the spec for a single request.
440
- :type _request_auth: dict, optional
441
- :param _content_type: force content-type for the request.
442
- :type _content_type: str, Optional
443
- :param _headers: set to override the headers for a single
444
- request; this effectively ignores the headers
445
- in the spec for a single request.
446
- :type _headers: dict, optional
447
- :param _host_index: set to override the host_index for a single
448
- request; this effectively ignores the host_index
449
- in the spec for a single request.
450
- :type _host_index: int, optional
451
- :return: Returns the result object.
452
- """ # noqa: E501
453
-
454
- _param = self._get_root_serialize(
455
- _request_auth=_request_auth,
456
- _content_type=_content_type,
457
- _headers=_headers,
458
- _host_index=_host_index
459
- )
460
-
461
- _response_types_map: Dict[str, Optional[str]] = {
462
- '200': "RootResponse",
463
- }
464
- response_data = self.api_client.call_api(
465
- *_param,
466
- _request_timeout=_request_timeout
467
- )
468
- return response_data.response
469
-
470
-
471
- def _get_root_serialize(
472
- self,
473
- _request_auth,
474
- _content_type,
475
- _headers,
476
- _host_index,
477
- ) -> RequestSerialized:
478
-
479
- _host = None
480
-
481
- _collection_formats: Dict[str, str] = {
482
- }
483
-
484
- _path_params: Dict[str, str] = {}
485
- _query_params: List[Tuple[str, str]] = []
486
- _header_params: Dict[str, Optional[str]] = _headers or {}
487
- _form_params: List[Tuple[str, str]] = []
488
- _files: Dict[
489
- str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
490
- ] = {}
491
- _body_params: Optional[bytes] = None
492
-
493
- # process the path parameters
494
- # process the query parameters
495
- # process the header parameters
496
- # process the form parameters
497
- # process the body parameter
498
-
499
-
500
- # set the HTTP header `Accept`
501
- if 'Accept' not in _header_params:
502
- _header_params['Accept'] = self.api_client.select_header_accept(
503
- [
504
- 'application/json'
505
- ]
506
- )
507
-
508
-
509
- # authentication setting
510
- _auth_settings: List[str] = [
511
- ]
512
-
513
- return self.api_client.param_serialize(
514
- method='GET',
515
- resource_path='/',
516
- path_params=_path_params,
517
- query_params=_query_params,
518
- header_params=_header_params,
519
- body=_body_params,
520
- post_params=_form_params,
521
- files=_files,
522
- auth_settings=_auth_settings,
523
- collection_formats=_collection_formats,
524
- _host=_host,
525
- _request_auth=_request_auth
526
- )
527
-
528
-
529
-
530
-
531
- @validate_call
532
- def head_health(
533
- self,
534
- _request_timeout: Union[
535
- None,
536
- Annotated[StrictFloat, Field(gt=0)],
537
- Tuple[
538
- Annotated[StrictFloat, Field(gt=0)],
539
- Annotated[StrictFloat, Field(gt=0)]
540
- ]
541
- ] = None,
542
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
543
- _content_type: Optional[StrictStr] = None,
544
- _headers: Optional[Dict[StrictStr, Any]] = None,
545
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
546
- ) -> None:
547
- """Registry health check (headers only)
548
-
549
- Returns registry health status headers without response body. Used by Docker/K8s health checks with wget --spider. 🤖 AI NOTE: Same logic as GET /health but returns only headers. Enables simple health checks: wget --spider http://localhost:8000/health
550
-
551
- :param _request_timeout: timeout setting for this request. If one
552
- number provided, it will be total request
553
- timeout. It can also be a pair (tuple) of
554
- (connection, read) timeouts.
555
- :type _request_timeout: int, tuple(int, int), optional
556
- :param _request_auth: set to override the auth_settings for an a single
557
- request; this effectively ignores the
558
- authentication in the spec for a single request.
559
- :type _request_auth: dict, optional
560
- :param _content_type: force content-type for the request.
561
- :type _content_type: str, Optional
562
- :param _headers: set to override the headers for a single
563
- request; this effectively ignores the headers
564
- in the spec for a single request.
565
- :type _headers: dict, optional
566
- :param _host_index: set to override the host_index for a single
567
- request; this effectively ignores the host_index
568
- in the spec for a single request.
569
- :type _host_index: int, optional
570
- :return: Returns the result object.
571
- """ # noqa: E501
572
-
573
- _param = self._head_health_serialize(
574
- _request_auth=_request_auth,
575
- _content_type=_content_type,
576
- _headers=_headers,
577
- _host_index=_host_index
578
- )
579
-
580
- _response_types_map: Dict[str, Optional[str]] = {
581
- '200': None,
582
- }
583
- response_data = self.api_client.call_api(
584
- *_param,
585
- _request_timeout=_request_timeout
586
- )
587
- response_data.read()
588
- return self.api_client.response_deserialize(
589
- response_data=response_data,
590
- response_types_map=_response_types_map,
591
- ).data
592
-
593
-
594
- @validate_call
595
- def head_health_with_http_info(
596
- self,
597
- _request_timeout: Union[
598
- None,
599
- Annotated[StrictFloat, Field(gt=0)],
600
- Tuple[
601
- Annotated[StrictFloat, Field(gt=0)],
602
- Annotated[StrictFloat, Field(gt=0)]
603
- ]
604
- ] = None,
605
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
606
- _content_type: Optional[StrictStr] = None,
607
- _headers: Optional[Dict[StrictStr, Any]] = None,
608
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
609
- ) -> ApiResponse[None]:
610
- """Registry health check (headers only)
611
-
612
- Returns registry health status headers without response body. Used by Docker/K8s health checks with wget --spider. 🤖 AI NOTE: Same logic as GET /health but returns only headers. Enables simple health checks: wget --spider http://localhost:8000/health
613
-
614
- :param _request_timeout: timeout setting for this request. If one
615
- number provided, it will be total request
616
- timeout. It can also be a pair (tuple) of
617
- (connection, read) timeouts.
618
- :type _request_timeout: int, tuple(int, int), optional
619
- :param _request_auth: set to override the auth_settings for an a single
620
- request; this effectively ignores the
621
- authentication in the spec for a single request.
622
- :type _request_auth: dict, optional
623
- :param _content_type: force content-type for the request.
624
- :type _content_type: str, Optional
625
- :param _headers: set to override the headers for a single
626
- request; this effectively ignores the headers
627
- in the spec for a single request.
628
- :type _headers: dict, optional
629
- :param _host_index: set to override the host_index for a single
630
- request; this effectively ignores the host_index
631
- in the spec for a single request.
632
- :type _host_index: int, optional
633
- :return: Returns the result object.
634
- """ # noqa: E501
635
-
636
- _param = self._head_health_serialize(
637
- _request_auth=_request_auth,
638
- _content_type=_content_type,
639
- _headers=_headers,
640
- _host_index=_host_index
641
- )
642
-
643
- _response_types_map: Dict[str, Optional[str]] = {
644
- '200': None,
645
- }
646
- response_data = self.api_client.call_api(
647
- *_param,
648
- _request_timeout=_request_timeout
649
- )
650
- response_data.read()
651
- return self.api_client.response_deserialize(
652
- response_data=response_data,
653
- response_types_map=_response_types_map,
654
- )
655
-
656
-
657
- @validate_call
658
- def head_health_without_preload_content(
659
- self,
660
- _request_timeout: Union[
661
- None,
662
- Annotated[StrictFloat, Field(gt=0)],
663
- Tuple[
664
- Annotated[StrictFloat, Field(gt=0)],
665
- Annotated[StrictFloat, Field(gt=0)]
666
- ]
667
- ] = None,
668
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
669
- _content_type: Optional[StrictStr] = None,
670
- _headers: Optional[Dict[StrictStr, Any]] = None,
671
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
672
- ) -> RESTResponseType:
673
- """Registry health check (headers only)
674
-
675
- Returns registry health status headers without response body. Used by Docker/K8s health checks with wget --spider. 🤖 AI NOTE: Same logic as GET /health but returns only headers. Enables simple health checks: wget --spider http://localhost:8000/health
676
-
677
- :param _request_timeout: timeout setting for this request. If one
678
- number provided, it will be total request
679
- timeout. It can also be a pair (tuple) of
680
- (connection, read) timeouts.
681
- :type _request_timeout: int, tuple(int, int), optional
682
- :param _request_auth: set to override the auth_settings for an a single
683
- request; this effectively ignores the
684
- authentication in the spec for a single request.
685
- :type _request_auth: dict, optional
686
- :param _content_type: force content-type for the request.
687
- :type _content_type: str, Optional
688
- :param _headers: set to override the headers for a single
689
- request; this effectively ignores the headers
690
- in the spec for a single request.
691
- :type _headers: dict, optional
692
- :param _host_index: set to override the host_index for a single
693
- request; this effectively ignores the host_index
694
- in the spec for a single request.
695
- :type _host_index: int, optional
696
- :return: Returns the result object.
697
- """ # noqa: E501
698
-
699
- _param = self._head_health_serialize(
700
- _request_auth=_request_auth,
701
- _content_type=_content_type,
702
- _headers=_headers,
703
- _host_index=_host_index
704
- )
705
-
706
- _response_types_map: Dict[str, Optional[str]] = {
707
- '200': None,
708
- }
709
- response_data = self.api_client.call_api(
710
- *_param,
711
- _request_timeout=_request_timeout
712
- )
713
- return response_data.response
714
-
715
-
716
- def _head_health_serialize(
717
- self,
718
- _request_auth,
719
- _content_type,
720
- _headers,
721
- _host_index,
722
- ) -> RequestSerialized:
723
-
724
- _host = None
725
-
726
- _collection_formats: Dict[str, str] = {
727
- }
728
-
729
- _path_params: Dict[str, str] = {}
730
- _query_params: List[Tuple[str, str]] = []
731
- _header_params: Dict[str, Optional[str]] = _headers or {}
732
- _form_params: List[Tuple[str, str]] = []
733
- _files: Dict[
734
- str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
735
- ] = {}
736
- _body_params: Optional[bytes] = None
737
-
738
- # process the path parameters
739
- # process the query parameters
740
- # process the header parameters
741
- # process the form parameters
742
- # process the body parameter
743
-
744
-
745
-
746
-
747
- # authentication setting
748
- _auth_settings: List[str] = [
749
- ]
750
-
751
- return self.api_client.param_serialize(
752
- method='HEAD',
753
- resource_path='/health',
754
- path_params=_path_params,
755
- query_params=_query_params,
756
- header_params=_header_params,
757
- body=_body_params,
758
- post_params=_form_params,
759
- files=_files,
760
- auth_settings=_auth_settings,
761
- collection_formats=_collection_formats,
762
- _host=_host,
763
- _request_auth=_request_auth
764
- )