Skip to content

Commit 164c76c

Browse files
committed
Re-emit from TypeSpec
1 parent bf1de41 commit 164c76c

File tree

7 files changed

+145
-128
lines changed

7 files changed

+145
-128
lines changed

sdk/ai/azure-ai-projects/apiview-properties.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@
219219
"azure.ai.projects.models.OpenApiManagedSecurityScheme": "Azure.AI.Projects.OpenApiManagedSecurityScheme",
220220
"azure.ai.projects.models.OpenApiProjectConnectionAuthDetails": "Azure.AI.Projects.OpenApiProjectConnectionAuthDetails",
221221
"azure.ai.projects.models.OpenApiProjectConnectionSecurityScheme": "Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme",
222+
"azure.ai.projects.models.PagedSchedule": "Azure.Core.Page",
222223
"azure.ai.projects.models.PagedScheduleRun": "Azure.Core.Page",
223224
"azure.ai.projects.models.PendingUploadRequest": "Azure.AI.Projects.PendingUploadRequest",
224225
"azure.ai.projects.models.PendingUploadResponse": "Azure.AI.Projects.PendingUploadResponse",

sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py

Lines changed: 50 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6962,24 +6962,30 @@ async def get(self, id: str, **kwargs: Any) -> _models.Schedule:
69626962

69636963
return deserialized # type: ignore
69646964

6965-
@distributed_trace
6965+
@distributed_trace_async
69666966
@api_version_validation(
69676967
method_added_on="2025-11-15-preview",
6968-
params_added_on={"2025-11-15-preview": ["api_version", "client_request_id", "accept"]},
6968+
params_added_on={"2025-11-15-preview": ["api_version", "type", "enabled", "accept"]},
69696969
api_versions_list=["2025-11-15-preview"],
69706970
)
6971-
def list(self, **kwargs: Any) -> AsyncItemPaged["_models.Schedule"]:
6971+
async def list(
6972+
self,
6973+
*,
6974+
type: Optional[Union[str, _models.ScheduleTaskType]] = None,
6975+
enabled: Optional[bool] = None,
6976+
**kwargs: Any
6977+
) -> _models.PagedSchedule:
69726978
"""List all schedules.
69736979
6974-
:return: An iterator like instance of Schedule
6975-
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.projects.models.Schedule]
6980+
:keyword type: Filter by the type of schedule. Known values are: "Evaluation" and "Insight".
6981+
Default value is None.
6982+
:paramtype type: str or ~azure.ai.projects.models.ScheduleTaskType
6983+
:keyword enabled: Filter by the enabled status. Default value is None.
6984+
:paramtype enabled: bool
6985+
:return: PagedSchedule. The PagedSchedule is compatible with MutableMapping
6986+
:rtype: ~azure.ai.projects.models.PagedSchedule
69766987
:raises ~azure.core.exceptions.HttpResponseError:
69776988
"""
6978-
_headers = kwargs.pop("headers", {}) or {}
6979-
_params = kwargs.pop("params", {}) or {}
6980-
6981-
cls: ClsType[List[_models.Schedule]] = kwargs.pop("cls", None)
6982-
69836989
error_map: MutableMapping = {
69846990
401: ClientAuthenticationError,
69856991
404: ResourceNotFoundError,
@@ -6988,66 +6994,48 @@ def list(self, **kwargs: Any) -> AsyncItemPaged["_models.Schedule"]:
69886994
}
69896995
error_map.update(kwargs.pop("error_map", {}) or {})
69906996

6991-
def prepare_request(next_link=None):
6992-
if not next_link:
6993-
6994-
_request = build_schedules_list_request(
6995-
api_version=self._config.api_version,
6996-
headers=_headers,
6997-
params=_params,
6998-
)
6999-
path_format_arguments = {
7000-
"endpoint": self._serialize.url(
7001-
"self._config.endpoint", self._config.endpoint, "str", skip_quote=True
7002-
),
7003-
}
7004-
_request.url = self._client.format_url(_request.url, **path_format_arguments)
6997+
_headers = kwargs.pop("headers", {}) or {}
6998+
_params = kwargs.pop("params", {}) or {}
70056999

7006-
else:
7007-
# make call to next link with the client's api-version
7008-
_parsed_next_link = urllib.parse.urlparse(next_link)
7009-
_next_request_params = case_insensitive_dict(
7010-
{
7011-
key: [urllib.parse.quote(v) for v in value]
7012-
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
7013-
}
7014-
)
7015-
_next_request_params["api-version"] = self._config.api_version
7016-
_request = HttpRequest(
7017-
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
7018-
)
7019-
path_format_arguments = {
7020-
"endpoint": self._serialize.url(
7021-
"self._config.endpoint", self._config.endpoint, "str", skip_quote=True
7022-
),
7023-
}
7024-
_request.url = self._client.format_url(_request.url, **path_format_arguments)
7000+
cls: ClsType[_models.PagedSchedule] = kwargs.pop("cls", None)
70257001

7026-
return _request
7002+
_request = build_schedules_list_request(
7003+
type=type,
7004+
enabled=enabled,
7005+
api_version=self._config.api_version,
7006+
headers=_headers,
7007+
params=_params,
7008+
)
7009+
path_format_arguments = {
7010+
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True),
7011+
}
7012+
_request.url = self._client.format_url(_request.url, **path_format_arguments)
70277013

7028-
async def extract_data(pipeline_response):
7029-
deserialized = pipeline_response.http_response.json()
7030-
list_of_elem = _deserialize(List[_models.Schedule], deserialized.get("value", []))
7031-
if cls:
7032-
list_of_elem = cls(list_of_elem) # type: ignore
7033-
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
7014+
_stream = kwargs.pop("stream", False)
7015+
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
7016+
_request, stream=_stream, **kwargs
7017+
)
70347018

7035-
async def get_next(next_link=None):
7036-
_request = prepare_request(next_link)
7019+
response = pipeline_response.http_response
70377020

7038-
_stream = False
7039-
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
7040-
_request, stream=_stream, **kwargs
7041-
)
7042-
response = pipeline_response.http_response
7021+
if response.status_code not in [200]:
7022+
if _stream:
7023+
try:
7024+
await response.read() # Load the body in memory and close the socket
7025+
except (StreamConsumedError, StreamClosedError):
7026+
pass
7027+
map_error(status_code=response.status_code, response=response, error_map=error_map)
7028+
raise HttpResponseError(response=response)
70437029

7044-
if response.status_code not in [200]:
7045-
map_error(status_code=response.status_code, response=response, error_map=error_map)
7046-
raise HttpResponseError(response=response)
7030+
if _stream:
7031+
deserialized = response.iter_bytes()
7032+
else:
7033+
deserialized = _deserialize(_models.PagedSchedule, response.json())
70477034

7048-
return pipeline_response
7035+
if cls:
7036+
return cls(pipeline_response, deserialized, {}) # type: ignore
70497037

7050-
return AsyncItemPaged(get_next, extract_data)
7038+
return deserialized # type: ignore
70517039

70527040
@overload
70537041
async def create_or_update(

sdk/ai/azure-ai-projects/azure/ai/projects/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@
225225
OpenApiManagedSecurityScheme,
226226
OpenApiProjectConnectionAuthDetails,
227227
OpenApiProjectConnectionSecurityScheme,
228+
PagedSchedule,
228229
PagedScheduleRun,
229230
PendingUploadRequest,
230231
PendingUploadResponse,
@@ -624,6 +625,7 @@
624625
"OpenApiManagedSecurityScheme",
625626
"OpenApiProjectConnectionAuthDetails",
626627
"OpenApiProjectConnectionSecurityScheme",
628+
"PagedSchedule",
627629
"PagedScheduleRun",
628630
"PendingUploadRequest",
629631
"PendingUploadResponse",

sdk/ai/azure-ai-projects/azure/ai/projects/models/_models.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5512,9 +5512,7 @@ class FileSearchTool(Tool, discriminator="file_search"):
55125512
visibility=["read", "create", "update", "delete", "query"]
55135513
)
55145514
"""Ranking options for search."""
5515-
filters: Optional[Union["_models.ComparisonFilter", "_models.CompoundFilter"]] = rest_field(
5516-
visibility=["read", "create", "update", "delete", "query"]
5517-
)
5515+
filters: Optional[Union["_models.ComparisonFilter", "_models.CompoundFilter"]] = rest_field(visibility=["read", "create", "update", "delete", "query"])
55185516
"""A filter to apply. Is either a ComparisonFilter type or a CompoundFilter type."""
55195517

55205518
@overload
@@ -9451,6 +9449,39 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
94519449
super().__init__(*args, **kwargs)
94529450

94539451

9452+
class PagedSchedule(_Model):
9453+
"""Paged collection of Schedule items.
9454+
9455+
:ivar value: The Schedule items on this page. Required.
9456+
:vartype value: list[~azure.ai.projects.models.Schedule]
9457+
:ivar next_link: The link to the next page of items.
9458+
:vartype next_link: str
9459+
"""
9460+
9461+
value: list["_models.Schedule"] = rest_field(visibility=["read", "create", "update", "delete", "query"])
9462+
"""The Schedule items on this page. Required."""
9463+
next_link: Optional[str] = rest_field(name="nextLink", visibility=["read", "create", "update", "delete", "query"])
9464+
"""The link to the next page of items."""
9465+
9466+
@overload
9467+
def __init__(
9468+
self,
9469+
*,
9470+
value: list["_models.Schedule"],
9471+
next_link: Optional[str] = None,
9472+
) -> None: ...
9473+
9474+
@overload
9475+
def __init__(self, mapping: Mapping[str, Any]) -> None:
9476+
"""
9477+
:param mapping: raw JSON to initialize the model.
9478+
:type mapping: Mapping[str, Any]
9479+
"""
9480+
9481+
def __init__(self, *args: Any, **kwargs: Any) -> None:
9482+
super().__init__(*args, **kwargs)
9483+
9484+
94549485
class PagedScheduleRun(_Model):
94559486
"""Paged collection of ScheduleRun items.
94569487

sdk/ai/azure-ai-projects/azure/ai/projects/operations/_operations.py

Lines changed: 56 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,7 +1636,9 @@ def build_schedules_get_request(id: str, **kwargs: Any) -> HttpRequest:
16361636
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
16371637

16381638

1639-
def build_schedules_list_request(**kwargs: Any) -> HttpRequest:
1639+
def build_schedules_list_request(
1640+
*, type: Optional[Union[str, _models.ScheduleTaskType]] = None, enabled: Optional[bool] = None, **kwargs: Any
1641+
) -> HttpRequest:
16401642
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
16411643
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
16421644

@@ -1648,6 +1650,10 @@ def build_schedules_list_request(**kwargs: Any) -> HttpRequest:
16481650

16491651
# Construct parameters
16501652
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
1653+
if type is not None:
1654+
_params["type"] = _SERIALIZER.query("type", type, "str")
1655+
if enabled is not None:
1656+
_params["enabled"] = _SERIALIZER.query("enabled", enabled, "bool")
16511657

16521658
# Construct headers
16531659
_headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
@@ -8573,21 +8579,27 @@ def get(self, id: str, **kwargs: Any) -> _models.Schedule:
85738579
@distributed_trace
85748580
@api_version_validation(
85758581
method_added_on="2025-11-15-preview",
8576-
params_added_on={"2025-11-15-preview": ["api_version", "client_request_id", "accept"]},
8582+
params_added_on={"2025-11-15-preview": ["api_version", "type", "enabled", "accept"]},
85778583
api_versions_list=["2025-11-15-preview"],
85788584
)
8579-
def list(self, **kwargs: Any) -> ItemPaged["_models.Schedule"]:
8585+
def list(
8586+
self,
8587+
*,
8588+
type: Optional[Union[str, _models.ScheduleTaskType]] = None,
8589+
enabled: Optional[bool] = None,
8590+
**kwargs: Any
8591+
) -> _models.PagedSchedule:
85808592
"""List all schedules.
85818593
8582-
:return: An iterator like instance of Schedule
8583-
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.projects.models.Schedule]
8594+
:keyword type: Filter by the type of schedule. Known values are: "Evaluation" and "Insight".
8595+
Default value is None.
8596+
:paramtype type: str or ~azure.ai.projects.models.ScheduleTaskType
8597+
:keyword enabled: Filter by the enabled status. Default value is None.
8598+
:paramtype enabled: bool
8599+
:return: PagedSchedule. The PagedSchedule is compatible with MutableMapping
8600+
:rtype: ~azure.ai.projects.models.PagedSchedule
85848601
:raises ~azure.core.exceptions.HttpResponseError:
85858602
"""
8586-
_headers = kwargs.pop("headers", {}) or {}
8587-
_params = kwargs.pop("params", {}) or {}
8588-
8589-
cls: ClsType[List[_models.Schedule]] = kwargs.pop("cls", None)
8590-
85918603
error_map: MutableMapping = {
85928604
401: ClientAuthenticationError,
85938605
404: ResourceNotFoundError,
@@ -8596,66 +8608,48 @@ def list(self, **kwargs: Any) -> ItemPaged["_models.Schedule"]:
85968608
}
85978609
error_map.update(kwargs.pop("error_map", {}) or {})
85988610

8599-
def prepare_request(next_link=None):
8600-
if not next_link:
8601-
8602-
_request = build_schedules_list_request(
8603-
api_version=self._config.api_version,
8604-
headers=_headers,
8605-
params=_params,
8606-
)
8607-
path_format_arguments = {
8608-
"endpoint": self._serialize.url(
8609-
"self._config.endpoint", self._config.endpoint, "str", skip_quote=True
8610-
),
8611-
}
8612-
_request.url = self._client.format_url(_request.url, **path_format_arguments)
8611+
_headers = kwargs.pop("headers", {}) or {}
8612+
_params = kwargs.pop("params", {}) or {}
86138613

8614-
else:
8615-
# make call to next link with the client's api-version
8616-
_parsed_next_link = urllib.parse.urlparse(next_link)
8617-
_next_request_params = case_insensitive_dict(
8618-
{
8619-
key: [urllib.parse.quote(v) for v in value]
8620-
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
8621-
}
8622-
)
8623-
_next_request_params["api-version"] = self._config.api_version
8624-
_request = HttpRequest(
8625-
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
8626-
)
8627-
path_format_arguments = {
8628-
"endpoint": self._serialize.url(
8629-
"self._config.endpoint", self._config.endpoint, "str", skip_quote=True
8630-
),
8631-
}
8632-
_request.url = self._client.format_url(_request.url, **path_format_arguments)
8614+
cls: ClsType[_models.PagedSchedule] = kwargs.pop("cls", None)
86338615

8634-
return _request
8616+
_request = build_schedules_list_request(
8617+
type=type,
8618+
enabled=enabled,
8619+
api_version=self._config.api_version,
8620+
headers=_headers,
8621+
params=_params,
8622+
)
8623+
path_format_arguments = {
8624+
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True),
8625+
}
8626+
_request.url = self._client.format_url(_request.url, **path_format_arguments)
86358627

8636-
def extract_data(pipeline_response):
8637-
deserialized = pipeline_response.http_response.json()
8638-
list_of_elem = _deserialize(List[_models.Schedule], deserialized.get("value", []))
8639-
if cls:
8640-
list_of_elem = cls(list_of_elem) # type: ignore
8641-
return deserialized.get("nextLink") or None, iter(list_of_elem)
8628+
_stream = kwargs.pop("stream", False)
8629+
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
8630+
_request, stream=_stream, **kwargs
8631+
)
86428632

8643-
def get_next(next_link=None):
8644-
_request = prepare_request(next_link)
8633+
response = pipeline_response.http_response
86458634

8646-
_stream = False
8647-
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
8648-
_request, stream=_stream, **kwargs
8649-
)
8650-
response = pipeline_response.http_response
8635+
if response.status_code not in [200]:
8636+
if _stream:
8637+
try:
8638+
response.read() # Load the body in memory and close the socket
8639+
except (StreamConsumedError, StreamClosedError):
8640+
pass
8641+
map_error(status_code=response.status_code, response=response, error_map=error_map)
8642+
raise HttpResponseError(response=response)
86518643

8652-
if response.status_code not in [200]:
8653-
map_error(status_code=response.status_code, response=response, error_map=error_map)
8654-
raise HttpResponseError(response=response)
8644+
if _stream:
8645+
deserialized = response.iter_bytes()
8646+
else:
8647+
deserialized = _deserialize(_models.PagedSchedule, response.json())
86558648

8656-
return pipeline_response
8649+
if cls:
8650+
return cls(pipeline_response, deserialized, {}) # type: ignore
86578651

8658-
return ItemPaged(get_next, extract_data)
8652+
return deserialized # type: ignore
86598653

86608654
@overload
86618655
def create_or_update(

sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# pylint: disable=line-too-long,useless-suppression
12
# ------------------------------------
23
# Copyright (c) Microsoft Corporation.
34
# Licensed under the MIT License.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
directory: specification/ai/Azure.AI.Projects
2-
commit: 083cefc569f02b7913aabba48cf3b4fcb797ba44
2+
commit: 3f41ac4b8628a0eb196085d223077b3e1c0d0759
33
repo: Azure/azure-rest-api-specs-pr
44
additionalDirectories:

0 commit comments

Comments
 (0)