[AutoPR azure-iot-deviceupdate]-generated-from-SDK Generation - Python-6642486 - #48360
Conversation
…nfig.yaml', API Version: 2026-06-01, SDK Release Type: stable, and CommitSHA: '67ffbb6bee462e36bcdd3b93cffca6942c3a35f7' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6636753 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
|
Azure Pipelines: Successfully started running 1 pipeline(s). 9 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
Note
Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.
Regenerates the azure-iot-deviceupdate Python SDK from an updated TypeSpec source, updating generated operations/types and internal serialization/deserialization helpers.
Changes:
- Updates the TypeSpec source commit and generator/emitter metadata for the package.
- Introduces a new
azure.iot.deviceupdate.typesmodule (TypedDict request-body types) and updates operation signatures/docs to prefer these types over generic JSON mappings. - Extends duration serialization/deserialization to support numeric “seconds/milliseconds” wire formats.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/deviceupdate/azure-iot-deviceupdate/tsp-location.yaml | Bumps the TypeSpec source commit used for generation. |
| sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml | Updates packaging metadata formatting and classifier status. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/types.py | Adds TypedDict request-body types for stronger typing. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/operations/_patch.py | Removes custom operation patches and public exports. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/operations/_operations.py | Adds delete deployment builders/ops and switches some params to new _types definitions. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py | Removes async custom operation patches and public exports. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_operations.py | Async equivalents of _types param updates and delete deployment ops. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_patch.py | Removes async client patch that preserved constructor parameter order. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py | Updates api_version docstring (now references None/default None). |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_client.py | Shortens client docstring and changes endpoint URL serialization behavior. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_utils/serialization.py | Adds numeric duration (seconds/milliseconds) serializers/deserializers. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_utils/model_base.py | Adds numeric duration support to Model-based serializer/deserializer map. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_patch.py | Removes sync client patch that preserved constructor parameter order. |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py | Updates api_version docstring (now references None/default None). |
| sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_client.py | Shortens client docstring and changes endpoint URL serialization behavior. |
| sdk/deviceupdate/azure-iot-deviceupdate/apiview-properties.json | Updates API view mapping identifiers/version info after regeneration. |
| sdk/deviceupdate/azure-iot-deviceupdate/api.metadata.yml | Updates parser/python versions and api.md hash. |
| sdk/deviceupdate/azure-iot-deviceupdate/api.md | Reflects regenerated public API surface (notably constructor signature order and type changes). |
| sdk/deviceupdate/azure-iot-deviceupdate/_metadata.json | Updates commit/emitter/http client python version metadata. |
| sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md | Replaces the 1.1.0 entry with placeholder text. |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 72 out of 74 changed files in this pull request and generated 8 comments.
Comments suppressed due to low confidence (9)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/models/init.py:1
- Deleting this initializer removes all previously public models and enums from
azure.iot.deviceupdate.models(for exampleUpdate,Deployment, andDownloadSecurity). Since the package remains a stable1.1.0release, this is a breaking API removal; regenerate or preserve the public model exports.
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_updates_service.py:25 - These tests now call
self.assertTrue,self.assertEqual,self.assertIsNotNone, andself.fail, but the repository-supportedAzureRecordedTestCasebase does not provide unittest assertion methods. After fixing the invalidAzureTestCaseimport, every such call still fails; retain pytest assertions (includingpytest.fail) or explicitly use a compatible test base.
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_management_service.py:23 - These tests were converted to unittest-style
self.assert*/self.failcalls, but the supportedAzureRecordedTestCasebase does not implement those methods. Once the invalid base-class import is corrected, the tests still fail at runtime; keep the original pytest assertions or use a compatible test base.
sdk/deviceupdate/azure-iot-deviceupdate/samples/sample_list_updates.py:19 - The sample now reads
DEVICEUPDATE_ACCOUNT_ENDPOINT, but its setup comment still tells users to defineDEVICEUPDATE_ENDPOINT. Following the documented prerequisites therefore exits through the missing-variable path.
sdk/deviceupdate/azure-iot-deviceupdate/samples/sample_get_update.py:20 - The code expects
DEVICEUPDATE_ACCOUNT_ENDPOINT, while the sample instructions above still specifyDEVICEUPDATE_ENDPOINT. Align the documented variable with the one actually read so the sample can be configured correctly.
sdk/deviceupdate/azure-iot-deviceupdate/sdk_packaging.toml:5 - The PR declares a stable release and
_version.py/CHANGELOG use stable version1.1.0, but this flag marks the package as preview for packaging automation. Set the stability metadata consistently for this release.
sdk/deviceupdate/azure-iot-deviceupdate/setup.py:47 - The distribution is versioned as stable
1.1.0, but this classifier advertises it as Beta. This produces inconsistent PyPI metadata for the stable release requested by the PR.
sdk/deviceupdate/azure-iot-deviceupdate/setup.py:73 - This lowers the package's declared minimum from Python 3.10 to the long-unsupported Python 3.6, while retaining stable version 1.1.0. Installers on 3.6–3.9 can now select a release that this repository no longer validates; keep
>=3.10and remove the obsolete 3.6–3.9 classifiers above.
sdk/deviceupdate/azure-iot-deviceupdate/samples/sample_get_device.py:17 - The new sample documents
DEVICEUPDATE_ENDPOINTbut readsDEVICEUPDATE_ACCOUNT_ENDPOINT, so users following the comment receive the missing-environment-variable error. Use one variable name consistently.
00de36c to
2789d56
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (7)
sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md:5
- This generator instruction is not release history and replaces the existing 1.1.0 feature notes. Add a user-facing summary of the API/client changes before releasing the package.
skip changelog generation for data-plane package and please add changelog manually.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py:158
- This generated paging operation is synchronous and returns
AsyncItemPaged; wrapping it withasync defchanges the call result into a coroutine. Existingasync for item in client.device_management.list_device_class_subgroups_for_group(...)calls will fail unless callers unexpectedly await the method first. Keep this wrapper as a regular function, like the other async paging wrappers above.
async def legacy_list_device_class_subgroups(self, group_id, *, filter=None, **kwargs):
return list_device_class_subgroups(self, group_id, filter=filter, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml:20
- The package version is stable (
1.1.0) andtool.azure-sdk-build.is_stableistrue, but this classifier marks the distribution as beta. This also conflicts with the PR's stable release type and will publish inconsistent package metadata.
"Development Status :: 4 - Beta",
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_patch.py:28
- The previous stable constructor accepted
api_version=Noneand deliberately omitted it so the generated default was used. This wrapper now forwardsNonethroughkwargs; the configuration stores it, and request builders then raise while serializing the requiredapi-versionquery value. Preserve the explicit keyword and only forward non-Nonevalues.
def legacy_init(self, endpoint: str, instance_id: str, credential: Any, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_patch.py:28
- The previous stable async constructor accepted
api_version=Noneand deliberately omitted it so the generated default was used. This wrapper now forwardsNonethroughkwargs; the configuration stores it, and request builders then raise while serializing the requiredapi-versionquery value. Preserve the explicit keyword and only forward non-Nonevalues.
def legacy_init(self, endpoint: str, instance_id: str, credential: Any, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/operations/_patch.py:37
- This no longer preserves the legacy raw
If-None-Matchvalue: the generatedprep_if_none_matchpath quotes non-wildcard ETags (_utils/utils.py:34-37), whereas the removed implementation forwarded the header unchanged. Keep setting the raw header directly so existing calls retain their wire behavior.
def _conditional_kwargs(if_none_match: Optional[str], kwargs: dict[str, Any]) -> dict[str, Any]:
if if_none_match is not None:
kwargs["etag"] = if_none_match
kwargs["match_condition"] = MatchConditions.IfModified
return kwargs
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py:37
- This no longer preserves the legacy raw
If-None-Matchvalue: the generatedprep_if_none_matchpath quotes non-wildcard ETags (_utils/utils.py:34-37), whereas the removed implementation forwarded the header unchanged. Keep setting the raw header directly so existing async calls retain their wire behavior.
This issue also appears on line 157 of the same file.
def _conditional_kwargs(if_none_match: Optional[str], kwargs: dict[str, Any]) -> dict[str, Any]:
if if_none_match is not None:
kwargs["etag"] = if_none_match
kwargs["match_condition"] = MatchConditions.IfModified
return kwargs
This comment has been minimized.
This comment has been minimized.
2789d56 to
ee326b8
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (7)
sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md:5
- This is a generation placeholder rather than release history. Publishing 1.1.0 with it leaves customers without any description of the API/customization changes, so it needs to be replaced with the actual release notes before release.
skip changelog generation for data-plane package and please add changelog manually.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py:157
- The generated async paging method is a regular function that immediately returns
AsyncItemPaged; wrapping it inasync defchanges the API into a coroutine. Existing callers that useasync fordirectly onlist_device_class_subgroups_for_group(...)will fail because they now receive a coroutine instead of an async iterable.
async def legacy_list_device_class_subgroups(self, group_id, *, filter=None, **kwargs):
sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml:20
- The PR is marked as a stable release, and this package also has
is_stable = true, but the classifier now advertises it as Beta. This will publish contradictory stability metadata; keep the production/stable classifier for version 1.1.0.
"Development Status :: 4 - Beta",
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_patch.py:28
- The prior public constructor treated
api_version=Noneas “use the default.” This wrapper now forwards that value, so configuration storesNoneand operations subsequently try to serialize it into the requiredapi-versionquery parameter, raising a serialization error. Preserve the previous handling of explicitNone.
def legacy_init(self, endpoint: str, instance_id: str, credential: Any, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_patch.py:28
- The prior public constructor treated
api_version=Noneas “use the default.” This wrapper now forwards that value, so configuration storesNoneand operations subsequently try to serialize it into the requiredapi-versionquery parameter, raising a serialization error. Preserve the previous handling of explicitNone.
def legacy_init(self, endpoint: str, instance_id: str, credential: Any, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py:139
- This wrapper removes the explicit
filterkeyword from the public signature even thoughlist_device_classeshas supported and documented it since 1.0.0. Calls still work only through**kwargs, but the stable API surface and generated documentation no longer expose the supported parameter; retain it explicitly and forward it.
This issue also appears on line 157 of the same file.
def legacy_list_device_classes(self, **kwargs):
return list_device_classes(self, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/operations/_patch.py:138
- This wrapper removes the explicit
filterkeyword from the public signature even thoughlist_device_classeshas supported and documented it since 1.0.0. Calls still work only through**kwargs, but the stable API surface and generated documentation no longer expose the supported parameter; retain it explicitly and forward it.
def legacy_list_device_classes(self, **kwargs):
return list_device_classes(self, **kwargs)
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 21 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (7)
sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md:5
- The release notes still contain the generator's action placeholder instead of describing the 1.1.0 changes. This text would be published to customers through the package long description; replace it with the actual features, breaking changes, and dependency/support updates before release.
skip changelog generation for data-plane package and please add changelog manually.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py:34
- This documentation now says the async configuration defaults to
None, but__init__still useskwargs.pop("api_version", "2026-06-01")at line 39. Document the actual default so generated reference docs do not give callers contradictory behavior.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- This documentation now says the configuration defaults to
None, but__init__still useskwargs.pop("api_version", "2026-06-01")at line 39. Document the actual default so generated reference docs do not give callers contradictory behavior.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/operations/_patch.py:158
- The generated async paging method is a regular
defreturningAsyncItemPaged, as shown in_operations.py:3052-3054. Wrapping it inasync defchanges this API to return a coroutine, so callers can no longer use the normalasync for item in client.device_management.list_device_class_subgroups_for_group(...)pattern. Keep this wrapper synchronous like the other async paging wrappers above.
async def legacy_list_device_class_subgroups(self, group_id, *, filter=None, **kwargs):
return list_device_class_subgroups(self, group_id, filter=filter, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_patch.py:32
- This compatibility wrapper removes the explicit
api_versionkeyword and no longer preserves the previous behavior of treatingapi_version=Noneas omitted. If an existing caller explicitly passesNone, it reaches the configuration and later raisesValueErrorwhile serializing the requiredapi-versionquery value. Preserve the public keyword and forward it only when non-None.
def __init__(self, endpoint: str, instance_id: str, credential: TokenCredential, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_patch.py:32
- This async compatibility wrapper removes the explicit
api_versionkeyword and no longer preserves the previous behavior of treatingapi_version=Noneas omitted. If an existing caller explicitly passesNone, it reaches the configuration and later raisesValueErrorwhile serializing the requiredapi-versionquery value. Preserve the public keyword and forward it only when non-None.
def __init__(self, endpoint: str, instance_id: str, credential: AsyncTokenCredential, **kwargs: Any) -> None:
generated_init(self, endpoint=endpoint, credential=credential, instance_id=instance_id, **kwargs)
sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml:20
- This stable 1.1.0 package is marked
is_stable = trueat line 74, so the Beta classifier mislabels the release on package indexes. Keep the classifier consistent with the stable version and packaging metadata.
"Development Status :: 4 - Beta",
This comment has been minimized.
This comment has been minimized.
…nfig.yaml', API Version: 2026-06-01, SDK Release Type: stable, and CommitSHA: 'a1e083316c4db68aac174e4039aa47c618ba41c1' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6642486 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 23 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (4)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_utils/serialization.py:1117
- If
isodate.parse_durationreturns anisodate.Duration(notdatetime.timedelta),valuebecomes anisodate.Durationobject andint(value)/float(value)will raiseTypeError. Since non-timedelta ISO durations can include months/years, you should either (a) explicitly reject non-datetime.timedeltadurations with a clear exception, or (b) convertisodate.Durationto atimedeltaonly when it’s safely representable (e.g., no months/years component) before computing numeric seconds/milliseconds.
@staticmethod
def _serialize_duration_numeric(attr, scale, as_int):
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_utils/serialization.py:1129
- If
isodate.parse_durationreturns anisodate.Duration(notdatetime.timedelta),valuebecomes anisodate.Durationobject andint(value)/float(value)will raiseTypeError. Since non-timedelta ISO durations can include months/years, you should either (a) explicitly reject non-datetime.timedeltadurations with a clear exception, or (b) convertisodate.Durationto atimedeltaonly when it’s safely representable (e.g., no months/years component) before computing numeric seconds/milliseconds.
if isinstance(attr, str):
attr = isodate.parse_duration(attr)
value = attr.total_seconds() * scale if isinstance(attr, datetime.timedelta) else attr
return int(value) if as_int else float(value)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- Docstring lists
Noneas a 'known value' forapi_version, which reads like it's a valid wire API version. SinceNonehere means 'unset' (use default), consider rewording to avoid implyingNoneis an API version value (e.g., document it as an optional parameter whereNoneuses the client/operation default).
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md:5
- The 1.1.0 section currently contains a placeholder instruction rather than user-facing release notes. Replace this with an actual changelog entry describing the shipped changes—especially any breaking API surface changes shown in
api.md—so consumers can assess impact and upgrade safely.
## 1.1.0 (2026-07-30)
skip changelog generation for data-plane package and please add changelog manually.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 24 changed files in this pull request and generated 1 comment.
Suppressed comments (6)
sdk/deviceupdate/azure-iot-deviceupdate/api.md:84
- This regeneration removes the public
Deploymentmodel overload and returns untyped JSON; the same happens for all model-backed inputs and responses, and the entire publicmodelspackage is deleted. That is a much broader breaking API removal than the changelog records and is not compatible with a stable 1.1.0 release. Preserve the existing model surface via TypeSpec/emitter customization, or treat and document this as an approved major-version break.
deployment: JSON,
*,
content_type: str = "application/json",
**kwargs: Any
) -> JSON: ...
sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml:20
- This stable package is marked
is_stable = true, but the classifier now advertises it as Beta. That publishes contradictory stability metadata; keep the Production/Stable classifier for the stated stable release.
"Development Status :: 4 - Beta",
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- The documented default is incorrect: the constructor immediately defaults
api_versionto"2026-06-01"on line 39, so it is neverNonewhen omitted. Document the actual default to avoid misleading callers.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py:34
- The documented default is incorrect: the async configuration constructor defaults
api_versionto"2026-06-01"on line 39, notNone. Document the actual default so the async API contract matches its implementation.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_client.py:31
- The public client documentation has regressed from a service description to a tautology, so generated reference docs no longer explain what the client is for. Restore the Device Update for IoT Hub description in the TypeSpec source and regenerate this client.
"""DeviceUpdateClient.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_client.py:31
- The async public client documentation has likewise regressed to only the class name, removing the service description from generated reference docs. Restore the description in TypeSpec and regenerate the async client.
"""DeviceUpdateClient.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 23 changed files in this pull request and generated no new comments.
Suppressed comments (3)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- This now documents
Noneas the default, but the constructor still executeskwargs.pop("api_version", "2026-06-01"). Document the actual2026-06-01default so users are not misled about client behavior.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py:34
- This now documents
Noneas the default, but the async constructor still executeskwargs.pop("api_version", "2026-06-01"). Document the actual2026-06-01default so users are not misled about client behavior.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/pyproject.toml:20
- The PR is configured as a stable
1.1.0release, and[packaging].is_stableis alsotrue, but this changed classifier publishes it as Beta. Restore the stable classifier so package metadata matches the release type.
"Development Status :: 4 - Beta",
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 23 changed files in this pull request and generated no new comments.
Suppressed comments (2)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- This now documents
Noneas an accepted/default API version, but the constructor still defaultsapi_versionto"2026-06-01"on line 39. PassingNoneis also forwarded to request builders as the requiredapi-versionquery value rather than selecting an operation default. Keep the documentation aligned with the actual default and supported value.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py:34
- This now documents
Noneas an accepted/default API version, but the async constructor still defaultsapi_versionto"2026-06-01"on line 39. PassingNoneis also forwarded to request builders as the requiredapi-versionquery value rather than selecting an operation default. Keep the documentation aligned with the actual default and supported value.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
[Pilot] PR Pipeline Failure AnalysisA CI pipeline failed on this pull request. Here is an automated analysis of what went wrong and how to get the build green. What failedThe
All 6 symbols exported by Recommended next steps
Raw pipeline analysis (azsdk ci analyze)
|
Sedols
left a comment
There was a problem hiding this comment.
Approved once addressed offline feedback and checks pass.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 20 changed files in this pull request and generated no new comments.
Suppressed comments (3)
sdk/deviceupdate/azure-iot-deviceupdate/api.md:14
- The API snapshot no longer matches the exported client. The compatibility class in
azure/iot/deviceupdate/_patch.pyexposes(endpoint, instance_id, credential, *, api_version: Optional[str] = None), while this records(endpoint, credential, instance_id, *, api_version: str). The operation patches also restoreif_none_match, which is absent throughout this snapshot. Regenerateapi.mdandapi.metadata.ymlafter applying the customizations so API review validates the surface users actually import.
endpoint: str,
credential: TokenCredential,
instance_id: str,
*,
api_version: str = ...,
sdk/deviceupdate/azure-iot-deviceupdate/apiview-properties.json:8
- These mappings now reference
azure.iot.deviceupdate.modelssymbols that do not exist: this PR deletes the models package and the API snapshot exposes no models namespace. Regenerate this metadata without the stale enum mappings so APIView does not attempt to associate nonexistent Python definitions.
"azure.iot.deviceupdate.models.StepType": "DeviceUpdateClient.StepType",
"azure.iot.deviceupdate.models.OperationStatus": "DeviceUpdateClient.OperationStatus",
"azure.iot.deviceupdate.models.DeviceDeploymentState": "DeviceUpdateClient.DeviceDeploymentState",
"azure.iot.deviceupdate.models.ImportType": "DeviceUpdateClient.ImportType",
"azure.iot.deviceupdate.models.GroupType": "DeviceUpdateClient.GroupType",
sdk/deviceupdate/azure-iot-deviceupdate/CHANGELOG.md:8
downloadSecuritysupports bothhttpsandhttp, so describing it only as configuring TLS-secured downloads is misleading; the new capability can also opt out of TLS. Describe this as selecting the update payload download protocol.
- Added support for configuring TLS-secured update payload downloads through the `downloadSecurity` property when creating or updating a deployment.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 20 changed files in this pull request and generated no new comments.
Suppressed comments (4)
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_client.py:31
- Replacing the public client description with only its class name removes all information about what service the client operates. Restore the service description so generated reference documentation remains meaningful.
"""DeviceUpdateClient.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/_configuration.py:34
- The new documentation says
api_version=Noneis supported and defaults per operation, but the configuration actually defaults to"2026-06-01", and explicitly passingNonereaches the request serializer and raisesValueError("No value for given attribute"). Keep the documented default and accepted values aligned with the implementation.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_configuration.py:34
- The async configuration has the same contract mismatch: it documents
Noneas supported even though the implementation defaults to"2026-06-01"and serializing an explicitly suppliedNonefails. Document the actual accepted value and default.
:keyword api_version: The API version to use for this operation. Known values are "2026-06-01"
and None. Default value is None. If not set, the operation's default API version will be used.
Note that overriding this default value may result in unsupported behavior.
sdk/deviceupdate/azure-iot-deviceupdate/azure/iot/deviceupdate/aio/_client.py:31
- The async client's public docstring is likewise reduced to a tautological class name, so its generated reference no longer explains the service. Preserve the existing service description here as well.
"""DeviceUpdateClient.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 22 changed files in this pull request and generated no new comments.
Suppressed comments (1)
sdk/deviceupdate/azure-iot-deviceupdate/samples/DeployUpdate/sample_deploy_update.py:44
- The companion deployment walkthrough still shows
updateIdat the top level (samples/DeployUpdate/Readme.md:48-56), while this corrected sample now requiresupdate.updateId. Users copying the README will therefore send the obsolete payload shape. Update the README snippet alongside this change so both examples use the same valid request body.
"update": {
"updateId": {"provider": update_provider, "name": update_name, "version": update_version},
},
Configurations: 'specification/deviceupdate/data-plane/duiothub/tspconfig.yaml', API Version: 2026-06-01, SDK Release Type: stable, and CommitSHA: 'a1e083316c4db68aac174e4039aa47c618ba41c1' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6642486 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. Release plan link: https://azsdk-releaseplan-dashboard-hveph5aqhhcfhtgu.westus-01.azurewebsites.net/?releaseplan=2239 Submitted by: laonyango@microsoft.com