Skip to content

Commit 5879399

Browse files
[AutoRelease] t2-iotfirmwaredefense-2025-08-29-65768(can only be merged by SDK owner) (#42777)
* code and test * update changelog * update changelog --------- Co-authored-by: azure-sdk <PythonSdkPipelines> Co-authored-by: ChenxiJiang333 <[email protected]>
1 parent bc76352 commit 5879399

File tree

63 files changed

+729
-292
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+729
-292
lines changed

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/CHANGELOG.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,136 @@
11
# Release History
22

3+
## 2.0.0 (2025-09-04)
4+
5+
### Features Added
6+
7+
- Client `IoTFirmwareDefenseMgmtClient` added operation group `usage_metrics`
8+
- Model `BinaryHardeningFeatures` added property `no_execute`
9+
- Model `BinaryHardeningFeatures` added property `position_independent_executable`
10+
- Model `BinaryHardeningFeatures` added property `relocation_read_only`
11+
- Model `BinaryHardeningResult` added property `security_hardening_features`
12+
- Model `BinaryHardeningResult` added property `executable_architecture`
13+
- Model `BinaryHardeningResult` added property `executable_class`
14+
- Model `BinaryHardeningResult` added property `provisioning_state`
15+
- Model `BinaryHardeningSummaryResource` added property `not_executable_stack_count`
16+
- Model `BinaryHardeningSummaryResource` added property `position_independent_executable_count`
17+
- Model `BinaryHardeningSummaryResource` added property `relocation_read_only_count`
18+
- Model `BinaryHardeningSummaryResource` added property `stack_canary_count`
19+
- Model `BinaryHardeningSummaryResource` added property `stripped_binary_count`
20+
- Model `BinaryHardeningSummaryResource` added property `provisioning_state`
21+
- Model `CryptoCertificate` added property `certificate_name`
22+
- Model `CryptoCertificate` added property `certificate_role`
23+
- Model `CryptoCertificate` added property `certificate_key_size`
24+
- Model `CryptoCertificate` added property `certificate_key_algorithm`
25+
- Model `CryptoCertificate` added property `certificate_usage`
26+
- Model `CryptoCertificate` added property `provisioning_state`
27+
- Model `CryptoCertificateSummaryResource` added property `total_certificate_count`
28+
- Model `CryptoCertificateSummaryResource` added property `paired_key_count`
29+
- Model `CryptoCertificateSummaryResource` added property `expired_certificate_count`
30+
- Model `CryptoCertificateSummaryResource` added property `expiring_soon_certificate_count`
31+
- Model `CryptoCertificateSummaryResource` added property `weak_signature_count`
32+
- Model `CryptoCertificateSummaryResource` added property `self_signed_certificate_count`
33+
- Model `CryptoCertificateSummaryResource` added property `short_key_size_count`
34+
- Model `CryptoCertificateSummaryResource` added property `provisioning_state`
35+
- Model `CryptoKey` added property `crypto_key_size`
36+
- Model `CryptoKey` added property `provisioning_state`
37+
- Model `CryptoKeySummaryResource` added property `total_key_count`
38+
- Model `CryptoKeySummaryResource` added property `public_key_count`
39+
- Model `CryptoKeySummaryResource` added property `private_key_count`
40+
- Model `CryptoKeySummaryResource` added property `paired_key_count`
41+
- Model `CryptoKeySummaryResource` added property `short_key_size_count`
42+
- Model `CryptoKeySummaryResource` added property `provisioning_state`
43+
- Model `CveResult` added property `component_id`
44+
- Model `CveResult` added property `component_name`
45+
- Model `CveResult` added property `component_version`
46+
- Model `CveResult` added property `cve_name`
47+
- Model `CveResult` added property `effective_cvss_score`
48+
- Model `CveResult` added property `effective_cvss_version`
49+
- Model `CveResult` added property `cvss_scores`
50+
- Model `CveResult` added property `provisioning_state`
51+
- Model `CveSummary` added property `critical_cve_count`
52+
- Model `CveSummary` added property `high_cve_count`
53+
- Model `CveSummary` added property `medium_cve_count`
54+
- Model `CveSummary` added property `low_cve_count`
55+
- Model `CveSummary` added property `unknown_cve_count`
56+
- Model `CveSummary` added property `provisioning_state`
57+
- Model `FirmwareSummary` added property `provisioning_state`
58+
- Model `PairedKey` added property `paired_key_id`
59+
- Model `PasswordHash` added property `provisioning_state`
60+
- Enum `ProvisioningState` added member `ANALYZING`
61+
- Enum `ProvisioningState` added member `EXTRACTING`
62+
- Enum `ProvisioningState` added member `PENDING`
63+
- Model `SbomComponent` added property `provisioning_state`
64+
- Model `SummaryResourceProperties` added property `provisioning_state`
65+
- Enum `SummaryType` added member `COMMON_VULNERABILITIES_AND_EXPOSURES`
66+
- Model `Workspace` added property `sku`
67+
- Added enum `CertificateUsage`
68+
- Added enum `CryptoKeyType`
69+
- Added model `CvssScore`
70+
- Added enum `ExecutableClass`
71+
- Added model `ProxyResource`
72+
- Added model `Sku`
73+
- Added enum `SkuTier`
74+
- Added model `UsageMetric`
75+
- Added model `UsageMetricProperties`
76+
- Added model `WorkspaceUpdate`
77+
- Added operation group `UsageMetricsOperations`
78+
79+
### Breaking Changes
80+
81+
- This version introduces new hybrid models which have dual dictionary and model nature. And please follow https://aka.ms/azsdk/python/migrate/hybrid-models for migration.
82+
- Model `BinaryHardeningFeatures` deleted or renamed its instance variable `nx`
83+
- Model `BinaryHardeningFeatures` deleted or renamed its instance variable `pie`
84+
- Model `BinaryHardeningFeatures` deleted or renamed its instance variable `relro`
85+
- Model `BinaryHardeningResult` deleted or renamed its instance variable `features`
86+
- Model `BinaryHardeningResult` deleted or renamed its instance variable `architecture`
87+
- Model `BinaryHardeningResult` deleted or renamed its instance variable `class_property`
88+
- Model `BinaryHardeningSummaryResource` deleted or renamed its instance variable `nx`
89+
- Model `BinaryHardeningSummaryResource` deleted or renamed its instance variable `pie`
90+
- Model `BinaryHardeningSummaryResource` deleted or renamed its instance variable `relro`
91+
- Model `BinaryHardeningSummaryResource` deleted or renamed its instance variable `canary`
92+
- Model `BinaryHardeningSummaryResource` deleted or renamed its instance variable `stripped`
93+
- Model `CryptoCertificate` deleted or renamed its instance variable `name`
94+
- Model `CryptoCertificate` deleted or renamed its instance variable `role`
95+
- Model `CryptoCertificate` deleted or renamed its instance variable `key_size`
96+
- Model `CryptoCertificate` deleted or renamed its instance variable `key_algorithm`
97+
- Model `CryptoCertificate` deleted or renamed its instance variable `usage`
98+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `total_certificates`
99+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `paired_keys`
100+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `expired`
101+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `expiring_soon`
102+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `weak_signature`
103+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `self_signed`
104+
- Model `CryptoCertificateSummaryResource` deleted or renamed its instance variable `short_key_size`
105+
- Model `CryptoKey` deleted or renamed its instance variable `key_size`
106+
- Model `CryptoKeySummaryResource` deleted or renamed its instance variable `total_keys`
107+
- Model `CryptoKeySummaryResource` deleted or renamed its instance variable `public_keys`
108+
- Model `CryptoKeySummaryResource` deleted or renamed its instance variable `private_keys`
109+
- Model `CryptoKeySummaryResource` deleted or renamed its instance variable `paired_keys`
110+
- Model `CryptoKeySummaryResource` deleted or renamed its instance variable `short_key_size`
111+
- Model `CveResult` deleted or renamed its instance variable `name`
112+
- Model `CveSummary` deleted or renamed its instance variable `critical`
113+
- Model `CveSummary` deleted or renamed its instance variable `high`
114+
- Model `CveSummary` deleted or renamed its instance variable `medium`
115+
- Model `CveSummary` deleted or renamed its instance variable `low`
116+
- Model `CveSummary` deleted or renamed its instance variable `unknown`
117+
- Model `PairedKey` deleted or renamed its instance variable `id`
118+
- Deleted or renamed enum value `ProvisioningState.ACCEPTED`
119+
- Deleted or renamed enum value `SummaryType.CVE`
120+
- Deleted or renamed model `FirmwareList`
121+
- Deleted or renamed model `SummaryName`
122+
- Deleted or renamed model `WorkspaceList`
123+
- Deleted or renamed model `WorkspaceUpdateDefinition`
124+
- Method `FirmwaresOperations.create` renamed its instance variable `firmware` to `resource`
125+
- Method `FirmwaresOperations.update` renamed its instance variable `firmware` to `properties`
126+
- Deleted or renamed method `FirmwaresOperations.generate_download_url`
127+
- Deleted or renamed method `FirmwaresOperations.generate_filesystem_download_url`
128+
- Method `SummariesOperations.get` renamed its instance variable `summary_name` to `summary_type`
129+
- Method `WorkspacesOperations.create` renamed its instance variable `workspace` to `resource`
130+
- Method `WorkspacesOperations.generate_upload_url` renamed its instance variable `generate_upload_url` to `body`
131+
- Method `WorkspacesOperations.update` renamed its instance variable `workspace` to `properties`
132+
- Operation group `WorkspacesOperations` renamed its method `delete` to `begin_delete`
133+
3134
## 2.0.0b1 (2025-05-08)
4135

5136
### Features Added

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/MANIFEST.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
include _meta.json
21
recursive-include tests *.py *.json
32
recursive-include samples *.py *.md
43
include *.md
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
2-
"commit": "121c5e84647a9cdb1767d5146affdfe2af91d776",
2+
"apiVersion": "2025-08-02",
3+
"commit": "222af3670e36c5083cb0dc8a9c2677a8f77f8958",
34
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
45
"typespec_src": "specification/fist/IotFirmwareDefense.Management",
5-
"@azure-tools/typespec-python": "0.44.1"
6+
"emitterVersion": "0.48.2"
67
}

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/apiview-properties.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"azure.mgmt.iotfirmwaredefense.models.CryptoKey": "Microsoft.IoTFirmwareDefense.CryptoKey",
1616
"azure.mgmt.iotfirmwaredefense.models.CryptoKeyResource": "Microsoft.IoTFirmwareDefense.CryptoKeyResource",
1717
"azure.mgmt.iotfirmwaredefense.models.CryptoKeySummaryResource": "Microsoft.IoTFirmwareDefense.CryptoKeySummaryResource",
18+
"azure.mgmt.iotfirmwaredefense.models.CveComponent": "Microsoft.IoTFirmwareDefense.CveComponent",
1819
"azure.mgmt.iotfirmwaredefense.models.CveLink": "Microsoft.IoTFirmwareDefense.CveLink",
1920
"azure.mgmt.iotfirmwaredefense.models.CveResource": "Microsoft.IoTFirmwareDefense.CveResource",
2021
"azure.mgmt.iotfirmwaredefense.models.CveResult": "Microsoft.IoTFirmwareDefense.CveResult",
@@ -74,8 +75,8 @@
7475
"azure.mgmt.iotfirmwaredefense.aio.operations.WorkspacesOperations.create": "Microsoft.IoTFirmwareDefense.Workspaces.create",
7576
"azure.mgmt.iotfirmwaredefense.operations.WorkspacesOperations.update": "Microsoft.IoTFirmwareDefense.Workspaces.update",
7677
"azure.mgmt.iotfirmwaredefense.aio.operations.WorkspacesOperations.update": "Microsoft.IoTFirmwareDefense.Workspaces.update",
77-
"azure.mgmt.iotfirmwaredefense.operations.WorkspacesOperations.delete": "Microsoft.IoTFirmwareDefense.Workspaces.delete",
78-
"azure.mgmt.iotfirmwaredefense.aio.operations.WorkspacesOperations.delete": "Microsoft.IoTFirmwareDefense.Workspaces.delete",
78+
"azure.mgmt.iotfirmwaredefense.operations.WorkspacesOperations.begin_delete": "Microsoft.IoTFirmwareDefense.Workspaces.delete",
79+
"azure.mgmt.iotfirmwaredefense.aio.operations.WorkspacesOperations.begin_delete": "Microsoft.IoTFirmwareDefense.Workspaces.delete",
7980
"azure.mgmt.iotfirmwaredefense.operations.WorkspacesOperations.list_by_resource_group": "Microsoft.IoTFirmwareDefense.Workspaces.listByResourceGroup",
8081
"azure.mgmt.iotfirmwaredefense.aio.operations.WorkspacesOperations.list_by_resource_group": "Microsoft.IoTFirmwareDefense.Workspaces.listByResourceGroup",
8182
"azure.mgmt.iotfirmwaredefense.operations.WorkspacesOperations.list_by_subscription": "Microsoft.IoTFirmwareDefense.Workspaces.listBySubscription",

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/azure/mgmt/iotfirmwaredefense/_client.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,11 @@ class IoTFirmwareDefenseMgmtClient: # pylint: disable=too-many-instance-attribu
6969
:type subscription_id: str
7070
:param base_url: Service host. Default value is None.
7171
:type base_url: str
72-
:keyword api_version: The API version to use for this operation. Default value is
73-
"2025-04-01-preview". Note that overriding this default value may result in unsupported
74-
behavior.
72+
:keyword api_version: The API version to use for this operation. Default value is "2025-08-02".
73+
Note that overriding this default value may result in unsupported behavior.
7574
:paramtype api_version: str
75+
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
76+
Retry-After header is present.
7677
"""
7778

7879
def __init__(

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/azure/mgmt/iotfirmwaredefense/_configuration.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ class IoTFirmwareDefenseMgmtClientConfiguration: # pylint: disable=too-many-ins
2929
:type subscription_id: str
3030
:param base_url: Service host. Default value is "https://management.azure.com".
3131
:type base_url: str
32-
:keyword api_version: The API version to use for this operation. Default value is
33-
"2025-04-01-preview". Note that overriding this default value may result in unsupported
34-
behavior.
32+
:keyword api_version: The API version to use for this operation. Default value is "2025-08-02".
33+
Note that overriding this default value may result in unsupported behavior.
3534
:paramtype api_version: str
3635
"""
3736

@@ -42,7 +41,7 @@ def __init__(
4241
base_url: str = "https://management.azure.com",
4342
**kwargs: Any
4443
) -> None:
45-
api_version: str = kwargs.pop("api_version", "2025-04-01-preview")
44+
api_version: str = kwargs.pop("api_version", "2025-08-02")
4645

4746
if credential is None:
4847
raise ValueError("Parameter 'credential' must not be None.")

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/azure/mgmt/iotfirmwaredefense/_utils/model_base.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from azure.core import CaseInsensitiveEnumMeta
3030
from azure.core.pipeline import PipelineResponse
3131
from azure.core.serialization import _Null
32+
from azure.core.rest import HttpResponse
3233

3334
_LOGGER = logging.getLogger(__name__)
3435

@@ -940,13 +941,13 @@ def _deserialize(
940941

941942
def _failsafe_deserialize(
942943
deserializer: typing.Any,
943-
value: typing.Any,
944+
response: HttpResponse,
944945
module: typing.Optional[str] = None,
945946
rf: typing.Optional["_RestField"] = None,
946947
format: typing.Optional[str] = None,
947948
) -> typing.Any:
948949
try:
949-
return _deserialize(deserializer, value, module, rf, format)
950+
return _deserialize(deserializer, response.json(), module, rf, format)
950951
except DeserializationError:
951952
_LOGGER.warning(
952953
"Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True
@@ -956,10 +957,10 @@ def _failsafe_deserialize(
956957

957958
def _failsafe_deserialize_xml(
958959
deserializer: typing.Any,
959-
value: typing.Any,
960+
response: HttpResponse,
960961
) -> typing.Any:
961962
try:
962-
return _deserialize_xml(deserializer, value)
963+
return _deserialize_xml(deserializer, response.text())
963964
except DeserializationError:
964965
_LOGGER.warning(
965966
"Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# --------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
# Code generated by Microsoft (R) Python Code Generator.
5+
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
6+
# --------------------------------------------------------------------------
7+
import functools
8+
9+
10+
def api_version_validation(**kwargs):
11+
params_added_on = kwargs.pop("params_added_on", {})
12+
method_added_on = kwargs.pop("method_added_on", "")
13+
api_versions_list = kwargs.pop("api_versions_list", [])
14+
15+
def _index_with_default(value: str, default: int = -1) -> int:
16+
"""Get the index of value in lst, or return default if not found.
17+
18+
:param value: The value to search for in the api_versions_list.
19+
:type value: str
20+
:param default: The default value to return if the value is not found.
21+
:type default: int
22+
:return: The index of the value in the list, or the default value if not found.
23+
:rtype: int
24+
"""
25+
try:
26+
return api_versions_list.index(value)
27+
except ValueError:
28+
return default
29+
30+
def decorator(func):
31+
@functools.wraps(func)
32+
def wrapper(*args, **kwargs):
33+
try:
34+
# this assumes the client has an _api_version attribute
35+
client = args[0]
36+
client_api_version = client._config.api_version # pylint: disable=protected-access
37+
except AttributeError:
38+
return func(*args, **kwargs)
39+
40+
if _index_with_default(method_added_on) > _index_with_default(client_api_version):
41+
raise ValueError(
42+
f"'{func.__name__}' is not available in API version "
43+
f"{client_api_version}. Pass service API version {method_added_on} or newer to your client."
44+
)
45+
46+
unsupported = {
47+
parameter: api_version
48+
for api_version, parameters in params_added_on.items()
49+
for parameter in parameters
50+
if parameter in kwargs and _index_with_default(api_version) > _index_with_default(client_api_version)
51+
}
52+
if unsupported:
53+
raise ValueError(
54+
"".join(
55+
[
56+
f"'{param}' is not available in API version {client_api_version}. "
57+
f"Use service API version {version} or newer.\n"
58+
for param, version in unsupported.items()
59+
]
60+
)
61+
)
62+
return func(*args, **kwargs)
63+
64+
return wrapper
65+
66+
return decorator

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/azure/mgmt/iotfirmwaredefense/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

9-
VERSION = "2.0.0b1"
9+
VERSION = "2.0.0"

sdk/iotfirmwaredefense/azure-mgmt-iotfirmwaredefense/azure/mgmt/iotfirmwaredefense/aio/_client.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ class IoTFirmwareDefenseMgmtClient: # pylint: disable=too-many-instance-attribu
7070
:type subscription_id: str
7171
:param base_url: Service host. Default value is None.
7272
:type base_url: str
73-
:keyword api_version: The API version to use for this operation. Default value is
74-
"2025-04-01-preview". Note that overriding this default value may result in unsupported
75-
behavior.
73+
:keyword api_version: The API version to use for this operation. Default value is "2025-08-02".
74+
Note that overriding this default value may result in unsupported behavior.
7675
:paramtype api_version: str
76+
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
77+
Retry-After header is present.
7778
"""
7879

7980
def __init__(

0 commit comments

Comments
 (0)