|
34 | 34 | from .._utils.model_base import Model as _Model, SdkJSONEncoder, _deserialize, _failsafe_deserialize
|
35 | 35 | from .._utils.serialization import Deserializer, Serializer
|
36 | 36 | from .._utils.utils import ClientMixinABC, prepare_multipart_form_data
|
| 37 | +from .._validation import api_version_validation |
37 | 38 |
|
38 | 39 | if TYPE_CHECKING:
|
39 | 40 | from .. import _types
|
@@ -300,6 +301,31 @@ def build_messages_update_request(thread_id: str, message_id: str, **kwargs: Any
|
300 | 301 | return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
|
301 | 302 |
|
302 | 303 |
|
| 304 | +def build_messages_delete_request(thread_id: str, message_id: str, **kwargs: Any) -> HttpRequest: |
| 305 | + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) |
| 306 | + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) |
| 307 | + |
| 308 | + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-05-15-preview")) |
| 309 | + accept = _headers.pop("Accept", "application/json") |
| 310 | + |
| 311 | + # Construct URL |
| 312 | + _url = "/threads/{threadId}/messages/{messageId}" |
| 313 | + path_format_arguments = { |
| 314 | + "threadId": _SERIALIZER.url("thread_id", thread_id, "str"), |
| 315 | + "messageId": _SERIALIZER.url("message_id", message_id, "str"), |
| 316 | + } |
| 317 | + |
| 318 | + _url: str = _url.format(**path_format_arguments) # type: ignore |
| 319 | + |
| 320 | + # Construct parameters |
| 321 | + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") |
| 322 | + |
| 323 | + # Construct headers |
| 324 | + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") |
| 325 | + |
| 326 | + return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs) |
| 327 | + |
| 328 | + |
303 | 329 | def build_runs_create_request(
|
304 | 330 | thread_id: str, *, include: Optional[List[Union[str, _models.RunAdditionalFieldList]]] = None, **kwargs: Any
|
305 | 331 | ) -> HttpRequest:
|
@@ -2269,6 +2295,77 @@ def update(
|
2269 | 2295 |
|
2270 | 2296 | return deserialized # type: ignore
|
2271 | 2297 |
|
| 2298 | + @distributed_trace |
| 2299 | + @api_version_validation( |
| 2300 | + method_added_on="v1", |
| 2301 | + params_added_on={"v1": ["api_version", "thread_id", "message_id", "accept"]}, |
| 2302 | + api_versions_list=["v1", "2025-05-15-preview"], |
| 2303 | + ) |
| 2304 | + def _delete(self, thread_id: str, message_id: str, **kwargs: Any) -> _models._models.MessageDeletionStatus: |
| 2305 | + """Deletes an existing message on an existing thread. |
| 2306 | +
|
| 2307 | + :param thread_id: Identifier of the thread. Required. |
| 2308 | + :type thread_id: str |
| 2309 | + :param message_id: Identifier of the message. Required. |
| 2310 | + :type message_id: str |
| 2311 | + :return: MessageDeletionStatus. The MessageDeletionStatus is compatible with MutableMapping |
| 2312 | + :rtype: ~azure.ai.agents.models._models.MessageDeletionStatus |
| 2313 | + :raises ~azure.core.exceptions.HttpResponseError: |
| 2314 | + """ |
| 2315 | + error_map: MutableMapping = { |
| 2316 | + 401: ClientAuthenticationError, |
| 2317 | + 404: ResourceNotFoundError, |
| 2318 | + 409: ResourceExistsError, |
| 2319 | + 304: ResourceNotModifiedError, |
| 2320 | + } |
| 2321 | + error_map.update(kwargs.pop("error_map", {}) or {}) |
| 2322 | + |
| 2323 | + _headers = kwargs.pop("headers", {}) or {} |
| 2324 | + _params = kwargs.pop("params", {}) or {} |
| 2325 | + |
| 2326 | + cls: ClsType[_models._models.MessageDeletionStatus] = kwargs.pop("cls", None) |
| 2327 | + |
| 2328 | + _request = build_messages_delete_request( |
| 2329 | + thread_id=thread_id, |
| 2330 | + message_id=message_id, |
| 2331 | + api_version=self._config.api_version, |
| 2332 | + headers=_headers, |
| 2333 | + params=_params, |
| 2334 | + ) |
| 2335 | + path_format_arguments = { |
| 2336 | + "endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), |
| 2337 | + } |
| 2338 | + _request.url = self._client.format_url(_request.url, **path_format_arguments) |
| 2339 | + |
| 2340 | + _stream = kwargs.pop("stream", False) |
| 2341 | + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access |
| 2342 | + _request, stream=_stream, **kwargs |
| 2343 | + ) |
| 2344 | + |
| 2345 | + response = pipeline_response.http_response |
| 2346 | + |
| 2347 | + if response.status_code not in [200]: |
| 2348 | + if _stream: |
| 2349 | + try: |
| 2350 | + response.read() # Load the body in memory and close the socket |
| 2351 | + except (StreamConsumedError, StreamClosedError): |
| 2352 | + pass |
| 2353 | + map_error(status_code=response.status_code, response=response, error_map=error_map) |
| 2354 | + error = _failsafe_deserialize(_models.AgentV1Error, response) |
| 2355 | + raise HttpResponseError(response=response, model=error) |
| 2356 | + |
| 2357 | + if _stream: |
| 2358 | + deserialized = response.iter_bytes() |
| 2359 | + else: |
| 2360 | + deserialized = _deserialize( |
| 2361 | + _models._models.MessageDeletionStatus, response.json() # pylint: disable=protected-access |
| 2362 | + ) |
| 2363 | + |
| 2364 | + if cls: |
| 2365 | + return cls(pipeline_response, deserialized, {}) # type: ignore |
| 2366 | + |
| 2367 | + return deserialized # type: ignore |
| 2368 | + |
2272 | 2369 |
|
2273 | 2370 | class RunsOperations:
|
2274 | 2371 | """
|
|
0 commit comments