diff --git a/sdk/managedops/azure-mgmt-managedops/CHANGELOG.md b/sdk/managedops/azure-mgmt-managedops/CHANGELOG.md index ab1c05f2148c..8c487c12b534 100644 --- a/sdk/managedops/azure-mgmt-managedops/CHANGELOG.md +++ b/sdk/managedops/azure-mgmt-managedops/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0b2 (2026-03-02) +## 1.0.0b2 (2026-03-06) ### Features Added diff --git a/sdk/managedops/azure-mgmt-managedops/_metadata.json b/sdk/managedops/azure-mgmt-managedops/_metadata.json index 138f5fa7e92b..867f4ed57cb3 100644 --- a/sdk/managedops/azure-mgmt-managedops/_metadata.json +++ b/sdk/managedops/azure-mgmt-managedops/_metadata.json @@ -3,8 +3,8 @@ "apiVersions": { "Microsoft.ManagedOps": "2025-07-28-preview" }, - "commit": "5dfb097302f2588f698e3a7c6d31f9194e64a2f9", + "commit": "e65deccb3a299251127212effa1cd75ad240610e", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "typespec_src": "specification/managedoperations/ManagedOps.Management", - "emitterVersion": "0.60.1" + "emitterVersion": "0.60.2" } \ No newline at end of file diff --git a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/_utils/model_base.py b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/_utils/model_base.py index c402af2afc63..b4433021b4e5 100644 --- a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/_utils/model_base.py +++ b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/_utils/model_base.py @@ -515,6 +515,8 @@ def setdefault(self, key: str, default: typing.Any = _UNSET) -> typing.Any: return self._data.setdefault(key, default) def __eq__(self, other: typing.Any) -> bool: + if isinstance(other, _MyMutableMapping): + return self._data == other._data try: other_model = self.__class__(other) except Exception: @@ -981,16 +983,20 @@ def _deserialize_with_callable( return float(value.text) if value.text else None if deserializer is bool: return value.text == "true" if value.text else None + if deserializer and deserializer in _DESERIALIZE_MAPPING.values(): + return deserializer(value.text) if value.text else None + if deserializer and deserializer in _DESERIALIZE_MAPPING_WITHFORMAT.values(): + return deserializer(value.text) if value.text else None if deserializer is None: return value if deserializer in [int, float, bool]: return deserializer(value) if isinstance(deserializer, CaseInsensitiveEnumMeta): try: - return deserializer(value) + return deserializer(value.text if isinstance(value, ET.Element) else value) except ValueError: # for unknown value, return raw value - return value + return value.text if isinstance(value, ET.Element) else value if isinstance(deserializer, type) and issubclass(deserializer, Model): return deserializer._deserialize(value, []) return typing.cast(typing.Callable[[typing.Any], typing.Any], deserializer)(value) diff --git a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/aio/operations/_operations.py b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/aio/operations/_operations.py index 83d7a3401aad..04352a051017 100644 --- a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/aio/operations/_operations.py +++ b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/aio/operations/_operations.py @@ -128,7 +128,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.Operation], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.Operation], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -207,6 +210,7 @@ async def get(self, managed_ops_name: str, **kwargs: Any) -> _models.ManagedOp: } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = kwargs.pop("stream", False) pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -228,7 +232,7 @@ async def get(self, managed_ops_name: str, **kwargs: Any) -> _models.ManagedOp: raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ManagedOp, response.json()) @@ -275,6 +279,7 @@ async def _create_or_update_initial( } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -301,7 +306,7 @@ async def _create_or_update_initial( ) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -498,7 +503,10 @@ def prepare_request(next_link=None): async def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ManagedOp], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedOp], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -562,6 +570,7 @@ async def _update_initial( } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -586,7 +595,7 @@ async def _update_initial( response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -748,6 +757,7 @@ async def _delete_initial(self, managed_ops_name: str, **kwargs: Any) -> AsyncIt } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -772,7 +782,7 @@ async def _delete_initial(self, managed_ops_name: str, **kwargs: Any) -> AsyncIt response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore diff --git a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/operations/_operations.py b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/operations/_operations.py index ce5ea4bedca5..3be986adfdf2 100644 --- a/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/operations/_operations.py +++ b/sdk/managedops/azure-mgmt-managedops/azure/mgmt/managedops/operations/_operations.py @@ -267,7 +267,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.Operation], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.Operation], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -346,6 +349,7 @@ def get(self, managed_ops_name: str, **kwargs: Any) -> _models.ManagedOp: } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = kwargs.pop("stream", False) pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -367,7 +371,7 @@ def get(self, managed_ops_name: str, **kwargs: Any) -> _models.ManagedOp: raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) if _stream: - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: deserialized = _deserialize(_models.ManagedOp, response.json()) @@ -414,6 +418,7 @@ def _create_or_update_initial( } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -440,7 +445,7 @@ def _create_or_update_initial( ) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -637,7 +642,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ManagedOp], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedOp], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -701,6 +709,7 @@ def _update_initial( } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -725,7 +734,7 @@ def _update_initial( response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore @@ -887,6 +896,7 @@ def _delete_initial(self, managed_ops_name: str, **kwargs: Any) -> Iterator[byte } _request.url = self._client.format_url(_request.url, **path_format_arguments) + _decompress = kwargs.pop("decompress", True) _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs @@ -911,7 +921,7 @@ def _delete_initial(self, managed_ops_name: str, **kwargs: Any) -> Iterator[byte response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Retry-After"] = self._deserialize("int", response.headers.get("Retry-After")) - deserialized = response.iter_bytes() + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: return cls(pipeline_response, deserialized, response_headers) # type: ignore diff --git a/sdk/managedops/azure-mgmt-managedops/generated_samples/managed_ops_update.py b/sdk/managedops/azure-mgmt-managedops/generated_samples/managed_ops_update.py index be3a41452162..8f3a5e0f93b2 100644 --- a/sdk/managedops/azure-mgmt-managedops/generated_samples/managed_ops_update.py +++ b/sdk/managedops/azure-mgmt-managedops/generated_samples/managed_ops_update.py @@ -32,7 +32,7 @@ def main(): response = client.managed_ops.begin_update( managed_ops_name="default", - properties={"properties": {"desiredConfiguration": {"defenderCspm": "Enable", "defenderForServers": "Enable"}}}, + properties={"properties": {"desiredConfiguration": {"defenderCspm": "str", "defenderForServers": "str"}}}, ).result() print(response) diff --git a/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations.py b/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations.py index 08a1cee5f87d..21898d4dddb4 100644 --- a/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations.py +++ b/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations.py @@ -41,18 +41,18 @@ def test_managed_ops_begin_create_or_update(self, resource_group): "azureMonitorInsights": {"azureMonitorWorkspaceId": "str"}, "changeTrackingAndInventory": {"logAnalyticsWorkspaceId": "str"}, "userAssignedManagedIdentityId": "str", - "defenderCspm": "Enable", - "defenderForServers": "Enable", + "defenderCspm": "str", + "defenderForServers": "str", }, "policyAssignmentProperties": {"policyInitiativeAssignmentId": "str"}, "provisioningState": "str", "services": { - "azureMonitorInsights": {"dcrId": "str", "enablementStatus": "Enabled"}, - "azurePolicyAndMachineConfiguration": {"enablementStatus": "Enabled"}, - "azureUpdateManager": {"enablementStatus": "Enabled"}, - "changeTrackingAndInventory": {"dcrId": "str", "enablementStatus": "Enabled"}, - "defenderCspm": {"enablementStatus": "Enabled"}, - "defenderForServers": {"enablementStatus": "Enabled"}, + "azureMonitorInsights": {"dcrId": "str", "enablementStatus": "str"}, + "azurePolicyAndMachineConfiguration": {"enablementStatus": "str"}, + "azureUpdateManager": {"enablementStatus": "str"}, + "changeTrackingAndInventory": {"dcrId": "str", "enablementStatus": "str"}, + "defenderCspm": {"enablementStatus": "str"}, + "defenderForServers": {"enablementStatus": "str"}, }, "sku": {"name": "str", "tier": "str"}, }, diff --git a/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations_async.py b/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations_async.py index 9d3c7338e48c..9879fcf54423 100644 --- a/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations_async.py +++ b/sdk/managedops/azure-mgmt-managedops/generated_tests/test_managed_ops_mgmt_managed_ops_operations_async.py @@ -43,18 +43,18 @@ async def test_managed_ops_begin_create_or_update(self, resource_group): "azureMonitorInsights": {"azureMonitorWorkspaceId": "str"}, "changeTrackingAndInventory": {"logAnalyticsWorkspaceId": "str"}, "userAssignedManagedIdentityId": "str", - "defenderCspm": "Enable", - "defenderForServers": "Enable", + "defenderCspm": "str", + "defenderForServers": "str", }, "policyAssignmentProperties": {"policyInitiativeAssignmentId": "str"}, "provisioningState": "str", "services": { - "azureMonitorInsights": {"dcrId": "str", "enablementStatus": "Enabled"}, - "azurePolicyAndMachineConfiguration": {"enablementStatus": "Enabled"}, - "azureUpdateManager": {"enablementStatus": "Enabled"}, - "changeTrackingAndInventory": {"dcrId": "str", "enablementStatus": "Enabled"}, - "defenderCspm": {"enablementStatus": "Enabled"}, - "defenderForServers": {"enablementStatus": "Enabled"}, + "azureMonitorInsights": {"dcrId": "str", "enablementStatus": "str"}, + "azurePolicyAndMachineConfiguration": {"enablementStatus": "str"}, + "azureUpdateManager": {"enablementStatus": "str"}, + "changeTrackingAndInventory": {"dcrId": "str", "enablementStatus": "str"}, + "defenderCspm": {"enablementStatus": "str"}, + "defenderForServers": {"enablementStatus": "str"}, }, "sku": {"name": "str", "tier": "str"}, }, @@ -89,7 +89,7 @@ async def test_managed_ops_begin_update(self, resource_group): await self.client.managed_ops.begin_update( managed_ops_name="str", properties={ - "properties": {"desiredConfiguration": {"defenderCspm": "Enable", "defenderForServers": "Enable"}} + "properties": {"desiredConfiguration": {"defenderCspm": "str", "defenderForServers": "str"}} }, ) ).result() # call '.result()' to poll until service return final result diff --git a/sdk/managedops/azure-mgmt-managedops/tsp-location.yaml b/sdk/managedops/azure-mgmt-managedops/tsp-location.yaml index 3038f8b6bb68..72f8fb67f20c 100644 --- a/sdk/managedops/azure-mgmt-managedops/tsp-location.yaml +++ b/sdk/managedops/azure-mgmt-managedops/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/managedoperations/ManagedOps.Management -commit: 5dfb097302f2588f698e3a7c6d31f9194e64a2f9 +commit: e65deccb3a299251127212effa1cd75ad240610e repo: Azure/azure-rest-api-specs additionalDirectories: