Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/managedops/azure-mgmt-managedops/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Release History

## 1.0.0b2 (2026-03-02)
## 1.0.0b2 (2026-03-06)

### Features Added

Expand Down
4 changes: 2 additions & 2 deletions sdk/managedops/azure-mgmt-managedops/_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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())

Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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())

Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
},
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion sdk/managedops/azure-mgmt-managedops/tsp-location.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
directory: specification/managedoperations/ManagedOps.Management
commit: 5dfb097302f2588f698e3a7c6d31f9194e64a2f9
commit: e65deccb3a299251127212effa1cd75ad240610e
repo: Azure/azure-rest-api-specs
additionalDirectories: