diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/CHANGELOG.md b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/CHANGELOG.md index 034bcf131647..f249222b075c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/CHANGELOG.md +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/CHANGELOG.md @@ -1,5 +1,36 @@ # Release History +## 3.1.0b1 (2026-05-19) + +### Features Added + + - Model `NodeTypeProperties` added property `scale_in_policy` + - Model `NodeTypeProperties` added property `proxy_agent_settings` + - Added model `ApplyMaintenanceWindowRequest` + - Added enum `FaultKind` + - Added model `FaultSimulation` + - Added model `FaultSimulationConstraints` + - Added model `FaultSimulationContent` + - Added model `FaultSimulationContentWrapper` + - Added model `FaultSimulationDetails` + - Added model `FaultSimulationIdContent` + - Added enum `FaultSimulationStatus` + - Added model `HostEndpointSettings` + - Added model `NodeTypeFaultSimulation` + - Added model `ProxyAgentSettings` + - Added model `ScaleInPolicy` + - Added enum `ScaleInPolicyMode` + - Added enum `SfmcOperationStatus` + - Added model `ZoneFaultSimulationContent` + - Operation group `ManagedClustersOperations` added method `begin_start_fault_simulation` + - Operation group `ManagedClustersOperations` added method `begin_stop_fault_simulation` + - Operation group `ManagedClustersOperations` added method `get_fault_simulation` + - Operation group `ManagedClustersOperations` added method `list_fault_simulation` + - Operation group `NodeTypesOperations` added method `begin_start_fault_simulation` + - Operation group `NodeTypesOperations` added method `begin_stop_fault_simulation` + - Operation group `NodeTypesOperations` added method `get_fault_simulation` + - Operation group `NodeTypesOperations` added method `list_fault_simulation` + ## 3.0.0 (2026-02-28) ### Features Added diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/README.md b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/README.md index ad6b3f465737..9e26c38b6a0a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/README.md +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/README.md @@ -1,7 +1,7 @@ # Microsoft Azure SDK for Python This is the Microsoft Azure Service Fabric Managed Clusters Management Client Library. -This package has been tested with Python 3.9+. +This package has been tested with Python 3.10+. For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all). ## _Disclaimer_ @@ -12,7 +12,7 @@ _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For ### Prerequisites -- Python 3.9+ is required to use this package. +- Python 3.10+ is required to use this package. - [Azure subscription](https://azure.microsoft.com/free/) ### Install the package diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/_metadata.json b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/_metadata.json index da0a6d1ccde4..12c9cbadb05b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/_metadata.json +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/_metadata.json @@ -1,10 +1,10 @@ { - "apiVersion": "2026-02-01", + "apiVersion": "2026-05-01-preview", "apiVersions": { - "Microsoft.ServiceFabric": "2026-02-01" + "Microsoft.ServiceFabric": "2026-05-01-preview" }, - "commit": "0d9b77817effe915b68e20d1a1830bf3b682cbd3", + "commit": "cfd58963682948f5242b945bc6152c4e54c88c0c", "repository_url": "https://github.com/Azure/azure-rest-api-specs", "typespec_src": "specification/servicefabricmanagedclusters/resource-manager/Microsoft.ServiceFabric/ServiceFabricManagedClusters", - "emitterVersion": "0.60.1" + "emitterVersion": "0.62.1" } \ No newline at end of file diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/apiview-properties.json b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/apiview-properties.json index c9b1d86a71ee..db36596ffe2e 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/apiview-properties.json +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/apiview-properties.json @@ -21,6 +21,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.ApplicationUpdateParametersProperties": "Microsoft.ServiceFabric.ApplicationUpdateParametersProperties", "azure.mgmt.servicefabricmanagedclusters.models.ApplicationUpgradePolicy": "Microsoft.ServiceFabric.ApplicationUpgradePolicy", "azure.mgmt.servicefabricmanagedclusters.models.ApplicationUserAssignedIdentity": "Microsoft.ServiceFabric.ApplicationUserAssignedIdentity", + "azure.mgmt.servicefabricmanagedclusters.models.ApplyMaintenanceWindowRequest": "Microsoft.ServiceFabric.ApplyMaintenanceWindowRequest", "azure.mgmt.servicefabricmanagedclusters.models.AvailableOperationDisplay": "Microsoft.ServiceFabric.AvailableOperationDisplay", "azure.mgmt.servicefabricmanagedclusters.models.ScalingTrigger": "Microsoft.ServiceFabric.ScalingTrigger", "azure.mgmt.servicefabricmanagedclusters.models.AveragePartitionLoadScalingTrigger": "Microsoft.ServiceFabric.AveragePartitionLoadScalingTrigger", @@ -36,7 +37,14 @@ "azure.mgmt.servicefabricmanagedclusters.models.ErrorDetail": "Azure.ResourceManager.CommonTypes.ErrorDetail", "azure.mgmt.servicefabricmanagedclusters.models.ErrorModelError": "Microsoft.ServiceFabric.ErrorModelError", "azure.mgmt.servicefabricmanagedclusters.models.ErrorResponse": "Azure.ResourceManager.CommonTypes.ErrorResponse", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation": "Microsoft.ServiceFabric.FaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationConstraints": "Microsoft.ServiceFabric.FaultSimulationConstraints", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContent": "Microsoft.ServiceFabric.FaultSimulationContent", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper": "Microsoft.ServiceFabric.FaultSimulationContentWrapper", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationDetails": "Microsoft.ServiceFabric.FaultSimulationDetails", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent": "Microsoft.ServiceFabric.FaultSimulationIdContent", "azure.mgmt.servicefabricmanagedclusters.models.FrontendConfiguration": "Microsoft.ServiceFabric.FrontendConfiguration", + "azure.mgmt.servicefabricmanagedclusters.models.HostEndpointSettings": "Microsoft.ServiceFabric.HostEndpointSettings", "azure.mgmt.servicefabricmanagedclusters.models.IpConfiguration": "Microsoft.ServiceFabric.IpConfiguration", "azure.mgmt.servicefabricmanagedclusters.models.IpConfigurationPublicIPAddressConfiguration": "Microsoft.ServiceFabric.PublicIPAddressConfiguration", "azure.mgmt.servicefabricmanagedclusters.models.IpTag": "Microsoft.ServiceFabric.IpTag", @@ -58,6 +66,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.NodeType": "Microsoft.ServiceFabric.NodeType", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters": "Microsoft.ServiceFabric.NodeTypeActionParameters", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeAvailableSku": "Microsoft.ServiceFabric.NodeTypeAvailableSku", + "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeFaultSimulation": "Microsoft.ServiceFabric.NodeTypeFaultSimulation", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeNatConfig": "Microsoft.ServiceFabric.NodeTypeNatConfig", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeProperties": "Microsoft.ServiceFabric.NodeTypeProperties", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeSku": "Microsoft.ServiceFabric.NodeTypeSku", @@ -66,6 +75,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters": "Microsoft.ServiceFabric.NodeTypeUpdateParameters", "azure.mgmt.servicefabricmanagedclusters.models.OperationResult": "Microsoft.ServiceFabric.OperationResult", "azure.mgmt.servicefabricmanagedclusters.models.PartitionInstanceCountScaleMechanism": "Microsoft.ServiceFabric.PartitionInstanceCountScaleMechanism", + "azure.mgmt.servicefabricmanagedclusters.models.ProxyAgentSettings": "Microsoft.ServiceFabric.ProxyAgentSettings", "azure.mgmt.servicefabricmanagedclusters.models.ResourceAzStatus": "Microsoft.ServiceFabric.ResourceAzStatus", "azure.mgmt.servicefabricmanagedclusters.models.RestartDeployedCodePackageRequest": "Microsoft.ServiceFabric.RestartDeployedCodePackageRequest", "azure.mgmt.servicefabricmanagedclusters.models.RestartReplicaRequest": "Microsoft.ServiceFabric.RestartReplicaRequest", @@ -75,6 +85,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.RuntimeRollingUpgradeUpdateMonitoringPolicy": "Microsoft.ServiceFabric.RuntimeRollingUpgradeUpdateMonitoringPolicy", "azure.mgmt.servicefabricmanagedclusters.models.RuntimeServiceTypeHealthPolicy": "Microsoft.ServiceFabric.RuntimeServiceTypeHealthPolicy", "azure.mgmt.servicefabricmanagedclusters.models.RuntimeUpdateApplicationUpgradeParameters": "Microsoft.ServiceFabric.RuntimeUpdateApplicationUpgradeParameters", + "azure.mgmt.servicefabricmanagedclusters.models.ScaleInPolicy": "Microsoft.ServiceFabric.ScaleInPolicy", "azure.mgmt.servicefabricmanagedclusters.models.ScalingPolicy": "Microsoft.ServiceFabric.ScalingPolicy", "azure.mgmt.servicefabricmanagedclusters.models.ServiceCorrelation": "Microsoft.ServiceFabric.ServiceCorrelation", "azure.mgmt.servicefabricmanagedclusters.models.ServiceEndpoint": "Microsoft.ServiceFabric.ServiceEndpoint", @@ -110,6 +121,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.VmssDataDisk": "Microsoft.ServiceFabric.VmssDataDisk", "azure.mgmt.servicefabricmanagedclusters.models.VMSSExtension": "Microsoft.ServiceFabric.VMSSExtension", "azure.mgmt.servicefabricmanagedclusters.models.VMSSExtensionProperties": "Microsoft.ServiceFabric.VMSSExtensionProperties", + "azure.mgmt.servicefabricmanagedclusters.models.ZoneFaultSimulationContent": "Microsoft.ServiceFabric.ZoneFaultSimulationContent", "azure.mgmt.servicefabricmanagedclusters.models.CreatedByType": "Azure.ResourceManager.CommonTypes.createdByType", "azure.mgmt.servicefabricmanagedclusters.models.FailureAction": "Microsoft.ServiceFabric.FailureAction", "azure.mgmt.servicefabricmanagedclusters.models.RollingUpgradeMode": "Microsoft.ServiceFabric.RollingUpgradeMode", @@ -145,6 +157,9 @@ "azure.mgmt.servicefabricmanagedclusters.models.ZonalUpdateMode": "Microsoft.ServiceFabric.ZonalUpdateMode", "azure.mgmt.servicefabricmanagedclusters.models.AutoGeneratedDomainNameLabelScope": "Microsoft.ServiceFabric.AutoGeneratedDomainNameLabelScope", "azure.mgmt.servicefabricmanagedclusters.models.SkuName": "Microsoft.ServiceFabric.SkuName", + "azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationStatus": "Microsoft.ServiceFabric.FaultSimulationStatus", + "azure.mgmt.servicefabricmanagedclusters.models.SfmcOperationStatus": "Microsoft.ServiceFabric.SfmcOperationStatus", + "azure.mgmt.servicefabricmanagedclusters.models.FaultKind": "Microsoft.ServiceFabric.FaultKind", "azure.mgmt.servicefabricmanagedclusters.models.DiskType": "Microsoft.ServiceFabric.DiskType", "azure.mgmt.servicefabricmanagedclusters.models.VmssExtensionSetupOrder": "Microsoft.ServiceFabric.VmssExtensionSetupOrder", "azure.mgmt.servicefabricmanagedclusters.models.IPAddressType": "Microsoft.ServiceFabric.IPAddressType", @@ -154,6 +169,7 @@ "azure.mgmt.servicefabricmanagedclusters.models.SecurityEncryptionType": "Microsoft.ServiceFabric.SecurityEncryptionType", "azure.mgmt.servicefabricmanagedclusters.models.PrivateIPAddressVersion": "Microsoft.ServiceFabric.PrivateIPAddressVersion", "azure.mgmt.servicefabricmanagedclusters.models.PublicIPAddressVersion": "Microsoft.ServiceFabric.PublicIPAddressVersion", + "azure.mgmt.servicefabricmanagedclusters.models.ScaleInPolicyMode": "Microsoft.ServiceFabric.ScaleInPolicyMode", "azure.mgmt.servicefabricmanagedclusters.models.UpdateType": "Microsoft.ServiceFabric.UpdateType", "azure.mgmt.servicefabricmanagedclusters.models.NodeTypeSkuScaleType": "Microsoft.ServiceFabric.NodeTypeSkuScaleType", "azure.mgmt.servicefabricmanagedclusters.operations.Operations.list": "Microsoft.ServiceFabric.Operations.list", @@ -236,6 +252,14 @@ "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.list_by_resource_group": "Microsoft.ServiceFabric.ManagedClusters.listByResourceGroup", "azure.mgmt.servicefabricmanagedclusters.operations.ManagedClustersOperations.list_by_subscription": "Microsoft.ServiceFabric.ManagedClusters.listBySubscription", "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.list_by_subscription": "Microsoft.ServiceFabric.ManagedClusters.listBySubscription", + "azure.mgmt.servicefabricmanagedclusters.operations.ManagedClustersOperations.get_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.getFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.get_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.getFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.ManagedClustersOperations.list_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.listFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.list_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.listFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.ManagedClustersOperations.begin_start_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.startFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.begin_start_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.startFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.ManagedClustersOperations.begin_stop_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.stopFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedClustersOperations.begin_stop_fault_simulation": "Microsoft.ServiceFabric.ManagedClusters.stopFaultSimulation", "azure.mgmt.servicefabricmanagedclusters.operations.ManagedAzResiliencyStatusOperations.get": "Microsoft.ServiceFabric.ManagedAzResiliencyStatus.get", "azure.mgmt.servicefabricmanagedclusters.aio.operations.ManagedAzResiliencyStatusOperations.get": "Microsoft.ServiceFabric.ManagedAzResiliencyStatus.get", "azure.mgmt.servicefabricmanagedclusters.operations.ManagedApplyMaintenanceWindowOperations.post": "Microsoft.ServiceFabric.ManagedApplyMaintenanceWindow.post", @@ -264,11 +288,20 @@ "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.begin_restart": "Microsoft.ServiceFabric.NodeTypes.restart", "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypesOperations.begin_start": "Microsoft.ServiceFabric.NodeTypes.start", "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.begin_start": "Microsoft.ServiceFabric.NodeTypes.start", + "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypesOperations.begin_start_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.startFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.begin_start_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.startFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypesOperations.begin_stop_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.stopFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.begin_stop_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.stopFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypesOperations.get_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.getFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.get_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.getFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypesOperations.list_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.listFaultSimulation", + "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypesOperations.list_fault_simulation": "Microsoft.ServiceFabric.NodeTypes.listFaultSimulation", "azure.mgmt.servicefabricmanagedclusters.operations.NodeTypeSkusOperations.list": "Microsoft.ServiceFabric.NodeTypeSkus.list", "azure.mgmt.servicefabricmanagedclusters.aio.operations.NodeTypeSkusOperations.list": "Microsoft.ServiceFabric.NodeTypeSkus.list", "azure.mgmt.servicefabricmanagedclusters.operations.OperationResultsOperations.get": "Microsoft.ServiceFabric.OperationResults.get", "azure.mgmt.servicefabricmanagedclusters.aio.operations.OperationResultsOperations.get": "Microsoft.ServiceFabric.OperationResults.get", "azure.mgmt.servicefabricmanagedclusters.operations.OperationStatusOperations.get": "Microsoft.ServiceFabric.OperationStatus.get", "azure.mgmt.servicefabricmanagedclusters.aio.operations.OperationStatusOperations.get": "Microsoft.ServiceFabric.OperationStatus.get" - } + }, + "CrossLanguageVersion": "c14997994faa" } \ No newline at end of file diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_client.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_client.py index 871849cd21a0..01910e94d794 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_client.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_client.py @@ -7,8 +7,8 @@ # -------------------------------------------------------------------------- from copy import deepcopy +import sys from typing import Any, Optional, TYPE_CHECKING, cast -from typing_extensions import Self from azure.core.pipeline import policies from azure.core.rest import HttpRequest, HttpResponse @@ -37,6 +37,11 @@ ServicesOperations, ) +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self # type: ignore + if TYPE_CHECKING: from azure.core import AzureClouds from azure.core.credentials import TokenCredential @@ -96,9 +101,10 @@ class ServiceFabricManagedClustersManagementClient: # pylint: disable=too-many- :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Known values are "2026-02-01" - and None. Default value is "2026-02-01". Note that overriding this default value may result in - unsupported behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2026-05-01-preview" 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. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_configuration.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_configuration.py index 6f8c819420de..7ca79073e52a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_configuration.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_configuration.py @@ -34,9 +34,10 @@ class ServiceFabricManagedClustersManagementClientConfiguration: # pylint: disa :param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :type cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Known values are "2026-02-01" - and None. Default value is "2026-02-01". Note that overriding this default value may result in - unsupported behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2026-05-01-preview" 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. :paramtype api_version: str """ @@ -48,7 +49,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2026-02-01") + api_version: str = kwargs.pop("api_version", "2026-05-01-preview") if credential is None: raise ValueError("Parameter 'credential' must not be None.") diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_patch.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_patch.py index 87676c65a8f0..ea765788358a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_patch.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_patch.py @@ -8,7 +8,6 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ - __all__: list[str] = [] # Add all objects you want publicly available to users at this package level diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/model_base.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/model_base.py index c402af2afc63..4102784f9a85 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/model_base.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/model_base.py @@ -23,14 +23,19 @@ from json import JSONEncoder import xml.etree.ElementTree as ET from collections.abc import MutableMapping -from typing_extensions import Self import isodate from azure.core.exceptions import DeserializationError from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline import PipelineResponse from azure.core.serialization import _Null + from azure.core.rest import HttpResponse +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + _LOGGER = logging.getLogger(__name__) __all__ = ["SdkJSONEncoder", "Model", "rest_field", "rest_discriminator"] @@ -515,6 +520,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: @@ -593,59 +600,10 @@ def __init__(self, *args: typing.Any, **kwargs: typing.Any) -> None: class_name = self.__class__.__name__ if len(args) > 1: raise TypeError(f"{class_name}.__init__() takes 2 positional arguments but {len(args) + 1} were given") - dict_to_pass = { - rest_field._rest_name: rest_field._default - for rest_field in self._attr_to_rest_field.values() - if rest_field._default is not _UNSET - } - if args: # pylint: disable=too-many-nested-blocks + dict_to_pass: dict[str, typing.Any] = {} + if args: if isinstance(args[0], ET.Element): - existed_attr_keys = [] - model_meta = getattr(self, "_xml", {}) - - for rf in self._attr_to_rest_field.values(): - prop_meta = getattr(rf, "_xml", {}) - xml_name = prop_meta.get("name", rf._rest_name) - xml_ns = prop_meta.get("ns", model_meta.get("ns", None)) - if xml_ns: - xml_name = "{" + xml_ns + "}" + xml_name - - # attribute - if prop_meta.get("attribute", False) and args[0].get(xml_name) is not None: - existed_attr_keys.append(xml_name) - dict_to_pass[rf._rest_name] = _deserialize(rf._type, args[0].get(xml_name)) - continue - - # unwrapped element is array - if prop_meta.get("unwrapped", False): - # unwrapped array could either use prop items meta/prop meta - if prop_meta.get("itemsName"): - xml_name = prop_meta.get("itemsName") - xml_ns = prop_meta.get("itemNs") - if xml_ns: - xml_name = "{" + xml_ns + "}" + xml_name - items = args[0].findall(xml_name) # pyright: ignore - if len(items) > 0: - existed_attr_keys.append(xml_name) - dict_to_pass[rf._rest_name] = _deserialize(rf._type, items) - continue - - # text element is primitive type - if prop_meta.get("text", False): - if args[0].text is not None: - dict_to_pass[rf._rest_name] = _deserialize(rf._type, args[0].text) - continue - - # wrapped element could be normal property or array, it should only have one element - item = args[0].find(xml_name) - if item is not None: - existed_attr_keys.append(xml_name) - dict_to_pass[rf._rest_name] = _deserialize(rf._type, item) - - # rest thing is additional properties - for e in args[0]: - if e.tag not in existed_attr_keys: - dict_to_pass[e.tag] = _convert_element(e) + dict_to_pass.update(self._init_from_xml(args[0])) else: dict_to_pass.update( {k: _create_value(_get_rest_field(self._attr_to_rest_field, k), v) for k, v in args[0].items()} @@ -662,8 +620,79 @@ def __init__(self, *args: typing.Any, **kwargs: typing.Any) -> None: if v is not None } ) + # Apply client default values for fields the caller didn't set so that + # defaults are part of `_data` and therefore included during serialization. + for rf in self._attr_to_rest_field.values(): + if rf._default is _UNSET: + continue + if rf._rest_name in dict_to_pass: + continue + dict_to_pass[rf._rest_name] = _create_value(rf, rf._default) super().__init__(dict_to_pass) + def _init_from_xml(self, element: ET.Element) -> dict[str, typing.Any]: + """Deserialize an XML element into a dict mapping rest field names to values. + + :param ET.Element element: The XML element to deserialize from. + :returns: A dictionary of rest_name to deserialized value pairs. + :rtype: dict + """ + result: dict[str, typing.Any] = {} + model_meta = getattr(self, "_xml", {}) + existed_attr_keys: list[str] = [] + + for rf in self._attr_to_rest_field.values(): + prop_meta = getattr(rf, "_xml", {}) + xml_name = prop_meta.get("name", rf._rest_name) + xml_ns = _resolve_xml_ns(prop_meta, model_meta) + if xml_ns: + xml_name = "{" + xml_ns + "}" + xml_name + + # attribute + if prop_meta.get("attribute", False) and element.get(xml_name) is not None: + existed_attr_keys.append(xml_name) + result[rf._rest_name] = _deserialize(rf._type, element.get(xml_name)) + continue + + # unwrapped element is array + if prop_meta.get("unwrapped", False): + # unwrapped array could either use prop items meta/prop meta + _items_name = prop_meta.get("itemsName") + if _items_name: + xml_name = _items_name + _items_ns = prop_meta.get("itemsNs") + if _items_ns is not None: + xml_ns = _items_ns + if xml_ns: + xml_name = "{" + xml_ns + "}" + xml_name + items = element.findall(xml_name) # pyright: ignore + if len(items) > 0: + existed_attr_keys.append(xml_name) + result[rf._rest_name] = _deserialize(rf._type, items) + elif not rf._is_optional: + existed_attr_keys.append(xml_name) + result[rf._rest_name] = [] + continue + + # text element is primitive type + if prop_meta.get("text", False): + if element.text is not None: + result[rf._rest_name] = _deserialize(rf._type, element.text) + continue + + # wrapped element could be normal property or array, it should only have one element + item = element.find(xml_name) + if item is not None: + existed_attr_keys.append(xml_name) + result[rf._rest_name] = _deserialize(rf._type, item) + + # rest thing is additional properties + for e in element: + if e.tag not in existed_attr_keys: + result[e.tag] = _convert_element(e) + + return result + def copy(self) -> "Model": return Model(self.__dict__) @@ -716,7 +745,7 @@ def _deserialize(cls, data, exist_discriminators): model_meta = getattr(cls, "_xml", {}) prop_meta = getattr(discriminator, "_xml", {}) xml_name = prop_meta.get("name", discriminator._rest_name) - xml_ns = prop_meta.get("ns", model_meta.get("ns", None)) + xml_ns = _resolve_xml_ns(prop_meta, model_meta) if xml_ns: xml_name = "{" + xml_ns + "}" + xml_name @@ -889,6 +918,8 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur # is it optional? try: if any(a is _NONE_TYPE for a in annotation.__args__): # pyright: ignore + if rf: + rf._is_optional = True if len(annotation.__args__) <= 2: # pyright: ignore if_obj_deserializer = _get_deserialize_callable_from_annotation( next(a for a in annotation.__args__ if a is not _NONE_TYPE), module, rf # pyright: ignore @@ -981,16 +1012,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) @@ -1043,6 +1078,7 @@ def _failsafe_deserialize_xml( return None +# pylint: disable=too-many-instance-attributes class _RestField: def __init__( self, @@ -1062,6 +1098,7 @@ def __init__( self._is_discriminator = is_discriminator self._visibility = visibility self._is_model = False + self._is_optional = False self._default = default self._format = format self._is_multipart_file_input = is_multipart_file_input @@ -1085,7 +1122,10 @@ def __get__(self, obj: Model, type=None): # pylint: disable=redefined-builtin # by this point, type and rest_name will have a value bc we default # them in __new__ of the Model class # Use _data.get() directly to avoid triggering __getitem__ which clears the cache - item = obj._data.get(self._rest_name) + item = obj._data.get(self._rest_name, _UNSET) + if item is _UNSET: + # Field not set by user; return the client default if one exists, otherwise None + return self._default if self._default is not _UNSET else None if item is None: return item if self._is_model: @@ -1177,6 +1217,56 @@ def serialize_xml(model: Model, exclude_readonly: bool = False) -> str: return ET.tostring(_get_element(model, exclude_readonly), encoding="unicode") # type: ignore +def _get_xml_ns(meta: dict[str, typing.Any]) -> typing.Optional[str]: + """Return the XML namespace from a metadata dict, checking both 'ns' (old-style) and 'namespace' (DPG) keys. + + :param dict meta: The metadata dictionary to extract namespace from. + :returns: The namespace string if 'ns' or 'namespace' key is present, None otherwise. + :rtype: str or None + """ + ns = meta.get("ns") + if ns is None: + ns = meta.get("namespace") + return ns + + +def _resolve_xml_ns( + prop_meta: dict[str, typing.Any], model_meta: typing.Optional[dict[str, typing.Any]] = None +) -> typing.Optional[str]: + """Resolve XML namespace for a property, falling back to model namespace when appropriate. + + Checks the property metadata first; if no namespace is found and the model does not declare + an explicit prefix, falls back to the model-level namespace. + + :param dict prop_meta: The property metadata dictionary. + :param dict model_meta: The model metadata dictionary, used as fallback. + :returns: The resolved namespace string, or None. + :rtype: str or None + """ + ns = _get_xml_ns(prop_meta) + if ns is None and model_meta is not None and not model_meta.get("prefix"): + ns = _get_xml_ns(model_meta) + return ns + + +def _set_xml_attribute(element: ET.Element, name: str, value: typing.Any, prop_meta: dict[str, typing.Any]) -> None: + """Set an XML attribute on an element, handling namespace prefix registration. + + :param ET.Element element: The element to set the attribute on. + :param str name: The default attribute name (wire name). + :param any value: The attribute value. + :param dict prop_meta: The property metadata dictionary. + """ + xml_name = prop_meta.get("name", name) + _attr_ns = _get_xml_ns(prop_meta) + if _attr_ns: + _attr_prefix = prop_meta.get("prefix") + if _attr_prefix: + _safe_register_namespace(_attr_prefix, _attr_ns) + xml_name = "{" + _attr_ns + "}" + xml_name + element.set(xml_name, _get_primitive_type_value(value)) + + def _get_element( o: typing.Any, exclude_readonly: bool = False, @@ -1188,10 +1278,16 @@ def _get_element( # if prop is a model, then use the prop element directly, else generate a wrapper of model if wrapped_element is None: + # When serializing as an array item (parent_meta is set), check if the parent has an + # explicit itemsName. This ensures correct element names for unwrapped arrays (where + # the element tag is the property/items name, not the model type name). + _items_name = parent_meta.get("itemsName") if parent_meta is not None else None + element_name = _items_name if _items_name else (model_meta.get("name") or o.__class__.__name__) + _model_ns = _get_xml_ns(model_meta) wrapped_element = _create_xml_element( - model_meta.get("name", o.__class__.__name__), + element_name, model_meta.get("prefix"), - model_meta.get("ns"), + _model_ns, ) readonly_props = [] @@ -1213,7 +1309,9 @@ def _get_element( # additional properties will not have rest field, use the wire name as xml name prop_meta = {"name": k} - # if no ns for prop, use model's + # Propagate model namespace to properties only for old-style "ns"-keyed models. + # DPG-generated models use the "namespace" key and explicitly declare namespace on + # each property that needs it, so propagation is intentionally skipped for them. if prop_meta.get("ns") is None and model_meta.get("ns"): prop_meta["ns"] = model_meta.get("ns") prop_meta["prefix"] = model_meta.get("prefix") @@ -1225,12 +1323,7 @@ def _get_element( # text could only set on primitive type wrapped_element.text = _get_primitive_type_value(v) elif prop_meta.get("attribute", False): - xml_name = prop_meta.get("name", k) - if prop_meta.get("ns"): - ET.register_namespace(prop_meta.get("prefix"), prop_meta.get("ns")) # pyright: ignore - xml_name = "{" + prop_meta.get("ns") + "}" + xml_name # pyright: ignore - # attribute should be primitive type - wrapped_element.set(xml_name, _get_primitive_type_value(v)) + _set_xml_attribute(wrapped_element, k, v, prop_meta) else: # other wrapped prop element wrapped_element.append(_get_wrapped_element(v, exclude_readonly, prop_meta)) @@ -1239,6 +1332,7 @@ def _get_element( return [_get_element(x, exclude_readonly, parent_meta) for x in o] # type: ignore if isinstance(o, dict): result = [] + _dict_ns = _get_xml_ns(parent_meta) if parent_meta else None for k, v in o.items(): result.append( _get_wrapped_element( @@ -1246,7 +1340,7 @@ def _get_element( exclude_readonly, { "name": k, - "ns": parent_meta.get("ns") if parent_meta else None, + "ns": _dict_ns, "prefix": parent_meta.get("prefix") if parent_meta else None, }, ) @@ -1255,13 +1349,16 @@ def _get_element( # primitive case need to create element based on parent_meta if parent_meta: + _items_ns = parent_meta.get("itemsNs") + if _items_ns is None: + _items_ns = _get_xml_ns(parent_meta) return _get_wrapped_element( o, exclude_readonly, { "name": parent_meta.get("itemsName", parent_meta.get("name")), "prefix": parent_meta.get("itemsPrefix", parent_meta.get("prefix")), - "ns": parent_meta.get("itemsNs", parent_meta.get("ns")), + "ns": _items_ns, }, ) @@ -1273,8 +1370,9 @@ def _get_wrapped_element( exclude_readonly: bool, meta: typing.Optional[dict[str, typing.Any]], ) -> ET.Element: + _meta_ns = _get_xml_ns(meta) if meta else None wrapped_element = _create_xml_element( - meta.get("name") if meta else None, meta.get("prefix") if meta else None, meta.get("ns") if meta else None + meta.get("name") if meta else None, meta.get("prefix") if meta else None, _meta_ns ) if isinstance(v, (dict, list)): wrapped_element.extend(_get_element(v, exclude_readonly, meta)) @@ -1295,11 +1393,29 @@ def _get_primitive_type_value(v) -> str: return str(v) +def _safe_register_namespace(prefix: str, ns: str) -> None: + """Register an XML namespace prefix, handling reserved prefix patterns. + + Some prefixes (e.g. 'ns2') match Python's reserved 'ns\\d+' pattern used for + auto-generated prefixes, causing register_namespace to raise ValueError. + Falls back to directly registering in the internal namespace map. + + :param str prefix: The namespace prefix to register. + :param str ns: The namespace URI. + """ + try: + ET.register_namespace(prefix, ns) + except ValueError: + _ns_map = getattr(ET, "_namespace_map", None) + if _ns_map is not None: + _ns_map[ns] = prefix + + def _create_xml_element( tag: typing.Any, prefix: typing.Optional[str] = None, ns: typing.Optional[str] = None ) -> ET.Element: if prefix and ns: - ET.register_namespace(prefix, ns) + _safe_register_namespace(prefix, ns) if ns: return ET.Element("{" + ns + "}" + tag) return ET.Element(tag) diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/serialization.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/serialization.py index 81ec1de5922b..954bf7ebffa7 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/serialization.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_utils/serialization.py @@ -39,11 +39,15 @@ import xml.etree.ElementTree as ET import isodate # type: ignore -from typing_extensions import Self from azure.core.exceptions import DeserializationError, SerializationError from azure.core.serialization import NULL as CoreNull +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self + _BOM = codecs.BOM_UTF8.decode(encoding="utf-8") JSON = MutableMapping[str, Any] diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_version.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_version.py index 7b1116c95ad7..1e0a77b6acff 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_version.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "3.0.0" +VERSION = "3.1.0b1" diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_client.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_client.py index 485a2762c1d9..4b58ee4d7ef0 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_client.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_client.py @@ -7,8 +7,8 @@ # -------------------------------------------------------------------------- from copy import deepcopy +import sys from typing import Any, Awaitable, Optional, TYPE_CHECKING, cast -from typing_extensions import Self from azure.core.pipeline import policies from azure.core.rest import AsyncHttpResponse, HttpRequest @@ -37,6 +37,11 @@ ServicesOperations, ) +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self # type: ignore + if TYPE_CHECKING: from azure.core import AzureClouds from azure.core.credentials_async import AsyncTokenCredential @@ -96,9 +101,10 @@ class ServiceFabricManagedClustersManagementClient: # pylint: disable=too-many- :keyword cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :paramtype cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Known values are "2026-02-01" - and None. Default value is "2026-02-01". Note that overriding this default value may result in - unsupported behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2026-05-01-preview" 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. :paramtype api_version: str :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_configuration.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_configuration.py index 16b268458bd1..5234f91a333f 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_configuration.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_configuration.py @@ -34,9 +34,10 @@ class ServiceFabricManagedClustersManagementClientConfiguration: # pylint: disa :param cloud_setting: The cloud setting for which to get the ARM endpoint. Default value is None. :type cloud_setting: ~azure.core.AzureClouds - :keyword api_version: The API version to use for this operation. Known values are "2026-02-01" - and None. Default value is "2026-02-01". Note that overriding this default value may result in - unsupported behavior. + :keyword api_version: The API version to use for this operation. Known values are + "2026-05-01-preview" 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. :paramtype api_version: str """ @@ -48,7 +49,7 @@ def __init__( cloud_setting: Optional["AzureClouds"] = None, **kwargs: Any ) -> None: - api_version: str = kwargs.pop("api_version", "2026-02-01") + api_version: str = kwargs.pop("api_version", "2026-05-01-preview") if credential is None: raise ValueError("Parameter 'credential' must not be None.") diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_patch.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_patch.py index 87676c65a8f0..ea765788358a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_patch.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/_patch.py @@ -8,7 +8,6 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ - __all__: list[str] = [] # Add all objects you want publicly available to users at this package level diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_operations.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_operations.py index a051532f4ffe..e11e33b17dc7 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_operations.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_operations.py @@ -67,9 +67,13 @@ build_managed_cluster_version_list_request, build_managed_clusters_create_or_update_request, build_managed_clusters_delete_request, + build_managed_clusters_get_fault_simulation_request, build_managed_clusters_get_request, build_managed_clusters_list_by_resource_group_request, build_managed_clusters_list_by_subscription_request, + build_managed_clusters_list_fault_simulation_request, + build_managed_clusters_start_fault_simulation_request, + build_managed_clusters_stop_fault_simulation_request, build_managed_clusters_update_request, build_managed_maintenance_window_status_get_request, build_managed_unsupported_vm_sizes_get_request, @@ -79,12 +83,16 @@ build_node_types_deallocate_request, build_node_types_delete_node_request, build_node_types_delete_request, + build_node_types_get_fault_simulation_request, build_node_types_get_request, build_node_types_list_by_managed_clusters_request, + build_node_types_list_fault_simulation_request, build_node_types_redeploy_request, build_node_types_reimage_request, build_node_types_restart_request, + build_node_types_start_fault_simulation_request, build_node_types_start_request, + build_node_types_stop_fault_simulation_request, build_node_types_update_request, build_operation_results_get_request, build_operation_status_get_request, @@ -173,7 +181,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -186,7 +197,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.OperationResult], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.OperationResult], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -277,6 +291,7 @@ async def get( } _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 @@ -298,7 +313,7 @@ async def get( 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.ApplicationResource, response.json()) @@ -352,6 +367,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 @@ -378,7 +394,7 @@ async def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -607,6 +623,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 @@ -633,7 +650,7 @@ async def _update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -847,6 +864,7 @@ async def _delete_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 @@ -873,7 +891,7 @@ async def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1001,7 +1019,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -1014,7 +1035,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.ApplicationResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -1070,6 +1094,7 @@ async def _read_upgrade_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 @@ -1095,7 +1120,7 @@ async def _read_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1210,6 +1235,7 @@ async def _resume_upgrade_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 @@ -1235,7 +1261,7 @@ async def _resume_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1442,6 +1468,7 @@ async def _start_rollback_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 @@ -1467,7 +1494,7 @@ async def _start_rollback_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1582,6 +1609,7 @@ async def _update_upgrade_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 @@ -1607,7 +1635,7 @@ async def _update_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1792,7 +1820,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def _fetch_health_initial( self, @@ -1839,6 +1867,7 @@ async def _fetch_health_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 @@ -1864,7 +1893,7 @@ async def _fetch_health_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -1977,7 +2006,7 @@ async def begin_fetch_health( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def begin_fetch_health( self, @@ -2065,7 +2094,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def _restart_deployed_code_package_initial( self, @@ -2112,6 +2141,7 @@ async def _restart_deployed_code_package_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 @@ -2137,7 +2167,7 @@ async def _restart_deployed_code_package_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2251,7 +2281,7 @@ async def begin_restart_deployed_code_package( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def begin_restart_deployed_code_package( self, @@ -2393,6 +2423,7 @@ async def get( } _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 @@ -2414,7 +2445,7 @@ async def get( 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.ApplicationTypeResource, response.json()) @@ -2580,6 +2611,7 @@ async def create_or_update( } _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 @@ -2601,7 +2633,7 @@ async def create_or_update( 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.ApplicationTypeResource, response.json()) @@ -2765,6 +2797,7 @@ async def update( } _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 @@ -2786,7 +2819,7 @@ async def update( 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.ApplicationTypeResource, response.json()) @@ -2825,6 +2858,7 @@ async def _delete_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 @@ -2851,7 +2885,7 @@ async def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2979,7 +3013,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -2992,7 +3029,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.ApplicationTypeResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationTypeResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -3087,6 +3127,7 @@ async def get( } _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 @@ -3108,7 +3149,7 @@ async def get( 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.ApplicationTypeVersionResource, response.json()) @@ -3164,6 +3205,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 @@ -3190,7 +3232,7 @@ async def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3565,6 +3607,7 @@ async def update( } _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 @@ -3586,7 +3629,7 @@ async def update( 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.ApplicationTypeVersionResource, response.json()) @@ -3626,6 +3669,7 @@ async def _delete_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 @@ -3652,7 +3696,7 @@ async def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3786,7 +3830,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -3799,7 +3846,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.ApplicationTypeVersionResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationTypeVersionResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -3894,6 +3944,7 @@ async def get( } _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 @@ -3915,7 +3966,7 @@ async def get( 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.ServiceResource, response.json()) @@ -3971,6 +4022,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 @@ -3997,7 +4049,7 @@ async def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -4368,6 +4420,7 @@ async def update( } _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 @@ -4389,7 +4442,7 @@ async def update( 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.ServiceResource, response.json()) @@ -4429,6 +4482,7 @@ async def _delete_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 @@ -4455,7 +4509,7 @@ async def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -4590,7 +4644,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -4603,7 +4660,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.ServiceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ServiceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -4642,7 +4702,7 @@ async def get_next(next_link=None): "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def _restart_replica_initial( self, @@ -4691,6 +4751,7 @@ async def _restart_replica_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 @@ -4716,7 +4777,7 @@ async def _restart_replica_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -4839,7 +4900,7 @@ async def begin_restart_replica( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) async def begin_restart_replica( self, @@ -4982,6 +5043,7 @@ async def get(self, location: str, cluster_version: str, **kwargs: Any) -> _mode } _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 @@ -5003,7 +5065,7 @@ async def get(self, location: str, cluster_version: str, **kwargs: Any) -> _mode 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.ManagedClusterCodeVersionResult, response.json()) @@ -5050,6 +5112,7 @@ async def list(self, location: str, **kwargs: Any) -> List[_models.ManagedCluste } _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 @@ -5071,7 +5134,7 @@ async def list(self, location: str, **kwargs: Any) -> List[_models.ManagedCluste 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(List[_models.ManagedClusterCodeVersionResult], response.json()) @@ -5133,6 +5196,7 @@ async def get_by_environment( } _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 @@ -5154,7 +5218,7 @@ async def get_by_environment( 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.ManagedClusterCodeVersionResult, response.json()) @@ -5207,6 +5271,7 @@ async def list_by_environment( } _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 @@ -5228,7 +5293,7 @@ async def list_by_environment( 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(List[_models.ManagedClusterCodeVersionResult], response.json()) @@ -5261,7 +5326,7 @@ def __init__(self, *args, **kwargs) -> None: async def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.ManagedVMSize: """Get unsupported vm size for Service Fabric Managed Clusters. - :param location: The location for the cluster code versions. This is different from cluster + :param location: The location for the unsupported VM sizes. This is different from cluster location. Required. :type location: str :param vm_size: VM Size name. Required. @@ -5296,6 +5361,7 @@ async def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.Manag } _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 @@ -5317,7 +5383,7 @@ async def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.Manag 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.ManagedVMSize, response.json()) @@ -5330,7 +5396,7 @@ async def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.Manag def list(self, location: str, **kwargs: Any) -> AsyncItemPaged["_models.ManagedVMSize"]: """Get the lists of unsupported vm sizes for Service Fabric Managed Clusters. - :param location: The location for the cluster code versions. This is different from cluster + :param location: The location for the unsupported VM sizes. This is different from cluster location. Required. :type location: str :return: An iterator like instance of ManagedVMSize @@ -5379,7 +5445,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -5392,7 +5461,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.ManagedVMSize], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedVMSize], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -5478,6 +5550,7 @@ async def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) } _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 @@ -5499,7 +5572,7 @@ async def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) 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.ManagedCluster, response.json()) @@ -5551,6 +5624,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 @@ -5577,7 +5651,7 @@ async def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -5791,6 +5865,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 @@ -5817,7 +5892,7 @@ async def _update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6017,6 +6092,7 @@ async def _delete_initial(self, resource_group_name: str, cluster_name: str, **k } _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 @@ -6043,7 +6119,7 @@ async def _delete_initial(self, resource_group_name: str, cluster_name: str, **k ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6163,7 +6239,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -6176,7 +6255,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.ManagedCluster], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedCluster], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -6252,7 +6334,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -6265,7 +6350,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.ManagedCluster], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedCluster], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -6291,41 +6379,122 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) + @overload + async def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationIdContent, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. -class ManagedAzResiliencyStatusOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_az_resiliency_status` attribute. - """ + @overload + async def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace_async - async def get( - self, resource_group_name: str, cluster_name: str, **kwargs: Any - ) -> _models.ManagedAzResiliencyStatus: - """Action to get Az Resiliency Status of all the Base resources constituting Service Fabric - Managed Clusters. + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :return: ManagedAzResiliencyStatus. The ManagedAzResiliencyStatus is compatible with - MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedAzResiliencyStatus + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or + JSON or IO[bytes] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ error_map: MutableMapping = { @@ -6336,16 +6505,26 @@ async def get( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ManagedAzResiliencyStatus] = kwargs.pop("cls", None) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) - _request = build_managed_az_resiliency_status_get_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_get_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -6354,6 +6533,7 @@ async def get( } _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 @@ -6375,49 +6555,43 @@ async def get( 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.ManagedAzResiliencyStatus, response.json()) + deserialized = _deserialize(_models.FaultSimulation, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore - -class ManagedApplyMaintenanceWindowOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_apply_maintenance_window` attribute. - """ - - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") - - @distributed_trace_async - async def post(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> None: - """Action to Apply Maintenance window on the Service Fabric Managed Clusters, right now. Any - pending update will be applied. + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": ["api_version", "subscription_id", "resource_group_name", "cluster_name", "accept"] + }, + api_versions_list=["2026-05-01-preview"], + ) + def list_fault_simulation( + self, resource_group_name: str, cluster_name: str, **kwargs: Any + ) -> AsyncItemPaged["_models.FaultSimulation"]: + """Gets the list of recent fault simulations for the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :return: None - :rtype: None + :return: An iterator like instance of FaultSimulation + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.FaultSimulation]] = kwargs.pop("cls", None) + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -6426,78 +6600,1368 @@ async def post(self, resource_group_name: str, cluster_name: str, **kwargs: Any) } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} - _params = kwargs.pop("params", {}) or {} - - cls: ClsType[None] = kwargs.pop("cls", None) + def prepare_request(next_link=None): + if not next_link: - _request = build_managed_apply_maintenance_window_post_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - subscription_id=self._config.subscription_id, - api_version=self._config.api_version, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) + _request = build_managed_clusters_list_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = False - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - response = pipeline_response.http_response + return _request - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, + async def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.FaultSimulation], + deserialized.get("value", []), ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, AsyncList(list_of_elem) - if cls: - return cls(pipeline_response, None, {}) # type: ignore + async def get_next(next_link=None): + _request = prepare_request(next_link) + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response -class ManagedMaintenanceWindowStatusOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_maintenance_window_status` attribute. - """ + return pipeline_response - def __init__(self, *args, **kwargs) -> None: + return AsyncItemPaged(get_next, extract_data) + + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def _start_fault_simulation_initial( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_start_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationContentWrapper, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Is one of the following types: + FaultSimulationContentWrapper, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + or JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._start_fault_simulation_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + await raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def _stop_fault_simulation_initial( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_stop_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationIdContent, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or + JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._stop_fault_simulation_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + await raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + +class ManagedAzResiliencyStatusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_az_resiliency_status` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace_async + async def get( + self, resource_group_name: str, cluster_name: str, **kwargs: Any + ) -> _models.ManagedAzResiliencyStatus: + """Action to get Az Resiliency Status of all the Base resources constituting Service Fabric + Managed Clusters. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :return: ManagedAzResiliencyStatus. The ManagedAzResiliencyStatus is compatible with + MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedAzResiliencyStatus + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.ManagedAzResiliencyStatus] = kwargs.pop("cls", None) + + _request = build_managed_az_resiliency_status_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.ManagedAzResiliencyStatus, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + +class ManagedApplyMaintenanceWindowOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_apply_maintenance_window` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + async def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[_models.ApplyMaintenanceWindowRequest] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: ~azure.mgmt.servicefabricmanagedclusters.models.ApplyMaintenanceWindowRequest + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[JSON] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[IO[bytes]] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[Union[_models.ApplyMaintenanceWindowRequest, JSON, IO[bytes]]] = None, + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Is one of the following types: + ApplyMaintenanceWindowRequest, JSON, IO[bytes] Default value is None. + :type body: ~azure.mgmt.servicefabricmanagedclusters.models.ApplyMaintenanceWindowRequest or + JSON or IO[bytes] + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + content_type = content_type if body else None + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" if body else None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + if body is not None: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + else: + _content = None + + _request = build_managed_apply_maintenance_window_post_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + +class ManagedMaintenanceWindowStatusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_maintenance_window_status` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace_async + async def get( + self, resource_group_name: str, cluster_name: str, **kwargs: Any + ) -> _models.ManagedMaintenanceWindowStatus: + """Action to get Maintenance Window Status of the Service Fabric Managed Clusters. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :return: ManagedMaintenanceWindowStatus. The ManagedMaintenanceWindowStatus is compatible with + MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedMaintenanceWindowStatus + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.ManagedMaintenanceWindowStatus] = kwargs.pop("cls", None) + + _request = build_managed_maintenance_window_status_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.ManagedMaintenanceWindowStatus, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + +class NodeTypesOperations: # pylint: disable=too-many-public-methods + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s + :attr:`node_types` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: input_args = list(args) self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( input_args.pop(0) if input_args else kwargs.pop("config") ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") - - @distributed_trace_async - async def get( - self, resource_group_name: str, cluster_name: str, **kwargs: Any - ) -> _models.ManagedMaintenanceWindowStatus: - """Action to get Maintenance Window Status of the Service Fabric Managed Clusters. + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace_async + async def get( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> _models.NodeType: + """Get a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: NodeType. The NodeType is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + + _request = build_node_types_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.NodeType, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + async def _create_or_update_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeType, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_create_or_update_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + async def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeType, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeType, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Is one of the following types: NodeType, JSON, + IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType or JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._create_or_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + await raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.NodeType, response.json()) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.NodeType].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.NodeType]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - :param resource_group_name: The name of the resource group. The name is case insensitive. - Required. - :type resource_group_name: str - :param cluster_name: The name of the cluster resource. Required. - :type cluster_name: str - :return: ManagedMaintenanceWindowStatus. The ManagedMaintenanceWindowStatus is compatible with - MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedMaintenanceWindowStatus - :raises ~azure.core.exceptions.HttpResponseError: - """ + async def _update_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncIterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -6506,16 +7970,27 @@ async def get( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ManagedMaintenanceWindowStatus] = kwargs.pop("cls", None) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - _request = build_managed_maintenance_window_status_get_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_update_request( resource_group_name=resource_group_name, cluster_name=cluster_name, + node_type_name=node_type_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -6524,19 +7999,19 @@ async def get( } _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = kwargs.pop("stream", False) + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200]: - if _stream: - try: - await response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass + if response.status_code not in [200, 202]: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass map_error(status_code=response.status_code, response=response, error_map=error_map) error = _failsafe_deserialize( _models.ErrorResponse, @@ -6544,41 +8019,130 @@ async def get( ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if _stream: - deserialized = response.iter_bytes() - else: - deserialized = _deserialize(_models.ManagedMaintenanceWindowStatus, response.json()) + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore + @overload + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeTypeUpdateParameters, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. -class NodeTypesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.aio.ServiceFabricManagedClustersManagementClient`'s - :attr:`node_types` attribute. - """ + @overload + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace_async - async def get( - self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any - ) -> _models.NodeType: - """Get a Service Fabric node type of a given managed cluster. + async def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + **kwargs: Any + ) -> AsyncLROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -6587,10 +8151,72 @@ async def get( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :return: NodeType. The NodeType is compatible with MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :param parameters: The parameters to update the node type configuration. Is one of the + following types: NodeTypeUpdateParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters or + JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + await raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.NodeType, response.json()) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.NodeType].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.NodeType]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + async def _delete_initial( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> AsyncIterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -6602,9 +8228,9 @@ async def get( _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - _request = build_node_types_get_request( + _request = build_node_types_delete_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -6618,19 +8244,19 @@ async def get( } _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = kwargs.pop("stream", False) + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200]: - if _stream: - try: - await response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass + if response.status_code not in [202, 204]: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass map_error(status_code=response.status_code, response=response, error_map=error_map) error = _failsafe_deserialize( _models.ErrorResponse, @@ -6638,22 +8264,191 @@ async def get( ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if _stream: - deserialized = response.iter_bytes() - else: - deserialized = _deserialize(_models.NodeType, response.json()) + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore - async def _create_or_update_initial( + @distributed_trace_async + async def begin_delete( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> AsyncLROPoller[None]: + """Delete a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + await raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + + @distributed_trace + def list_by_managed_clusters( + self, resource_group_name: str, cluster_name: str, **kwargs: Any + ) -> AsyncItemPaged["_models.NodeType"]: + """Gets all Node types of the specified managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :return: An iterator like instance of NodeType + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.NodeType]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_node_types_list_by_managed_clusters_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + async def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.NodeType], + deserialized.get("value", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + async def _deallocate_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeType, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { @@ -6677,7 +8472,7 @@ async def _create_or_update_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_create_or_update_request( + _request = build_node_types_deallocate_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -6693,6 +8488,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 @@ -6700,7 +8496,7 @@ async def _create_or_update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 202]: + if response.status_code not in [202]: try: await response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -6713,13 +8509,12 @@ async def _create_or_update_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6727,17 +8522,18 @@ async def _create_or_update_initial( return deserialized # type: ignore @overload - async def begin_create_or_update( + async def begin_deallocate( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeType, + parameters: _models.NodeTypeActionParameters, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> AsyncLROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -6746,20 +8542,18 @@ async def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :param parameters: parameters for deallocate action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_create_or_update( + async def begin_deallocate( self, resource_group_name: str, cluster_name: str, @@ -6768,8 +8562,9 @@ async def begin_create_or_update( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> AsyncLROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -6778,20 +8573,18 @@ async def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. + :param parameters: parameters for deallocate action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_create_or_update( + async def begin_deallocate( self, resource_group_name: str, cluster_name: str, @@ -6800,8 +8593,9 @@ async def begin_create_or_update( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> AsyncLROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -6810,28 +8604,27 @@ async def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. + :param parameters: parameters for deallocate action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async - async def begin_create_or_update( + async def begin_deallocate( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeType, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> AsyncLROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -6840,25 +8633,24 @@ async def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Is one of the following types: NodeType, JSON, - IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType or JSON or IO[bytes] - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :param parameters: parameters for deallocate action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._create_or_update_initial( + raw_result = await self._deallocate_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -6872,12 +8664,9 @@ async def begin_create_or_update( await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): - response = pipeline_response.http_response - deserialized = _deserialize(_models.NodeType, response.json()) + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return cls(pipeline_response, None, {}) # type: ignore path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -6892,22 +8681,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller[_models.NodeType].from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller[_models.NodeType]( - self._client, raw_result, get_long_running_output, polling_method # type: ignore - ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _update_initial( + async def _delete_node_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { @@ -6931,7 +8718,7 @@ async def _update_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_update_request( + _request = build_node_types_delete_node_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -6947,6 +8734,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 @@ -6954,7 +8742,7 @@ async def _update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 202]: + if response.status_code not in [202]: try: await response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -6967,13 +8755,12 @@ async def _update_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6981,18 +8768,18 @@ async def _update_initial( return deserialized # type: ignore @overload - async def begin_update( + async def begin_delete_node( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeUpdateParameters, + parameters: _models.NodeTypeActionParameters, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> AsyncLROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7001,20 +8788,18 @@ async def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters + :param parameters: parameters for delete action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_update( + async def begin_delete_node( self, resource_group_name: str, cluster_name: str, @@ -7023,9 +8808,9 @@ async def begin_update( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> AsyncLROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7034,20 +8819,18 @@ async def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. + :param parameters: parameters for delete action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_update( + async def begin_delete_node( self, resource_group_name: str, cluster_name: str, @@ -7056,9 +8839,9 @@ async def begin_update( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> AsyncLROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7067,29 +8850,27 @@ async def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. + :param parameters: parameters for delete action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async - async def begin_update( + async def begin_delete_node( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any - ) -> AsyncLROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> AsyncLROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7098,26 +8879,24 @@ async def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Is one of the - following types: NodeTypeUpdateParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters or + :param parameters: parameters for delete action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] - :return: An instance of AsyncLROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: - ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._update_initial( + raw_result = await self._delete_node_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7131,12 +8910,9 @@ async def begin_update( await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): - response = pipeline_response.http_response - deserialized = _deserialize(_models.NodeType, response.json()) + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return cls(pipeline_response, None, {}) # type: ignore path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -7151,18 +8927,21 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return AsyncLROPoller[_models.NodeType].from_continuation_token( + return AsyncLROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller[_models.NodeType]( - self._client, raw_result, get_long_running_output, polling_method # type: ignore - ) + return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _delete_initial( - self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + async def _redeploy_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -7172,17 +8951,27 @@ async def _delete_initial( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - _request = build_node_types_delete_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_redeploy_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -7191,6 +8980,7 @@ async def _delete_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 @@ -7198,7 +8988,7 @@ async def _delete_initial( response = pipeline_response.http_response - if response.status_code not in [202, 204]: + if response.status_code not in [202]: try: await response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -7211,24 +9001,122 @@ async def _delete_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 - return deserialized # type: ignore + return deserialized # type: ignore + + @overload + async def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeTypeActionParameters, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> AsyncLROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of AsyncLROPoller that returns None + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace_async - async def begin_delete( - self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + async def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + **kwargs: Any ) -> AsyncLROPoller[None]: - """Delete a Service Fabric node type of a given managed cluster. + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7237,22 +9125,29 @@ async def begin_delete( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str + :param parameters: parameters for redeploy action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + JSON or IO[bytes] :return: An instance of AsyncLROPoller that returns None :rtype: ~azure.core.polling.AsyncLROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._delete_initial( + raw_result = await self._redeploy_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -7286,104 +9181,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - @distributed_trace - def list_by_managed_clusters( - self, resource_group_name: str, cluster_name: str, **kwargs: Any - ) -> AsyncItemPaged["_models.NodeType"]: - """Gets all Node types of the specified managed cluster. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - Required. - :type resource_group_name: str - :param cluster_name: The name of the cluster resource. Required. - :type cluster_name: str - :return: An iterator like instance of NodeType - :rtype: - ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = kwargs.pop("params", {}) or {} - - cls: ClsType[List[_models.NodeType]] = kwargs.pop("cls", None) - - error_map: MutableMapping = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - _request = build_node_types_list_by_managed_clusters_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - subscription_id=self._config.subscription_id, - api_version=self._config.api_version, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url( - "self._config.base_url", self._config.base_url, "str", skip_quote=True - ), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - path_format_arguments = { - "endpoint": self._serialize.url( - "self._config.base_url", self._config.base_url, "str", skip_quote=True - ), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - return _request - - async def extract_data(pipeline_response): - deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.NodeType], deserialized.get("value", [])) - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.get("nextLink") or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - _request = prepare_request(next_link) - - _stream = False - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, - ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged(get_next, extract_data) - - async def _deallocate_initial( + async def _reimage_initial( self, resource_group_name: str, cluster_name: str, @@ -7412,7 +9210,7 @@ async def _deallocate_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_deallocate_request( + _request = build_node_types_reimage_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7428,6 +9226,7 @@ async def _deallocate_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 @@ -7453,7 +9252,7 @@ async def _deallocate_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7461,7 +9260,7 @@ async def _deallocate_initial( return deserialized # type: ignore @overload - async def begin_deallocate( + async def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -7471,8 +9270,8 @@ async def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7481,7 +9280,7 @@ async def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -7492,7 +9291,7 @@ async def begin_deallocate( """ @overload - async def begin_deallocate( + async def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -7502,8 +9301,8 @@ async def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7512,7 +9311,7 @@ async def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -7523,7 +9322,7 @@ async def begin_deallocate( """ @overload - async def begin_deallocate( + async def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -7533,8 +9332,8 @@ async def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7543,7 +9342,7 @@ async def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -7554,7 +9353,7 @@ async def begin_deallocate( """ @distributed_trace_async - async def begin_deallocate( + async def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -7562,8 +9361,8 @@ async def begin_deallocate( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7572,7 +9371,7 @@ async def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Is one of the following types: + :param parameters: parameters for reimage action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -7589,7 +9388,7 @@ async def begin_deallocate( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._deallocate_initial( + raw_result = await self._reimage_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7628,7 +9427,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _delete_node_initial( + async def _restart_initial( self, resource_group_name: str, cluster_name: str, @@ -7657,7 +9456,7 @@ async def _delete_node_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_delete_node_request( + _request = build_node_types_restart_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7673,6 +9472,7 @@ async def _delete_node_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 @@ -7698,7 +9498,7 @@ async def _delete_node_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7706,7 +9506,7 @@ async def _delete_node_initial( return deserialized # type: ignore @overload - async def begin_delete_node( + async def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -7716,8 +9516,8 @@ async def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7726,7 +9526,7 @@ async def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -7737,7 +9537,7 @@ async def begin_delete_node( """ @overload - async def begin_delete_node( + async def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -7747,8 +9547,8 @@ async def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7757,7 +9557,7 @@ async def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -7768,7 +9568,7 @@ async def begin_delete_node( """ @overload - async def begin_delete_node( + async def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -7778,8 +9578,8 @@ async def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7788,7 +9588,7 @@ async def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -7799,7 +9599,7 @@ async def begin_delete_node( """ @distributed_trace_async - async def begin_delete_node( + async def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -7807,8 +9607,8 @@ async def begin_delete_node( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7817,7 +9617,7 @@ async def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Is one of the following types: + :param parameters: parameters for restart action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -7834,7 +9634,7 @@ async def begin_delete_node( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._delete_node_initial( + raw_result = await self._restart_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7873,7 +9673,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _redeploy_initial( + async def _start_initial( self, resource_group_name: str, cluster_name: str, @@ -7902,7 +9702,7 @@ async def _redeploy_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_redeploy_request( + _request = build_node_types_start_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -7918,6 +9718,7 @@ async def _redeploy_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 @@ -7943,7 +9744,7 @@ async def _redeploy_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7951,7 +9752,7 @@ async def _redeploy_initial( return deserialized # type: ignore @overload - async def begin_redeploy( + async def begin_start( self, resource_group_name: str, cluster_name: str, @@ -7961,8 +9762,8 @@ async def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -7971,7 +9772,7 @@ async def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -7982,7 +9783,7 @@ async def begin_redeploy( """ @overload - async def begin_redeploy( + async def begin_start( self, resource_group_name: str, cluster_name: str, @@ -7992,8 +9793,8 @@ async def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8002,7 +9803,7 @@ async def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -8013,7 +9814,7 @@ async def begin_redeploy( """ @overload - async def begin_redeploy( + async def begin_start( self, resource_group_name: str, cluster_name: str, @@ -8023,8 +9824,8 @@ async def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> AsyncLROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8033,7 +9834,7 @@ async def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -8044,7 +9845,7 @@ async def begin_redeploy( """ @distributed_trace_async - async def begin_redeploy( + async def begin_start( self, resource_group_name: str, cluster_name: str, @@ -8052,8 +9853,8 @@ async def begin_redeploy( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> AsyncLROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8062,7 +9863,7 @@ async def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Is one of the following types: + :param parameters: parameters for start action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -8079,7 +9880,7 @@ async def begin_redeploy( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._redeploy_initial( + raw_result = await self._start_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8118,12 +9919,26 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - async def _reimage_initial( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def _start_fault_simulation_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { @@ -8147,7 +9962,7 @@ async def _reimage_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_reimage_request( + _request = build_node_types_start_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8163,6 +9978,7 @@ async def _reimage_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 @@ -8183,12 +9999,12 @@ async def _reimage_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -8196,18 +10012,17 @@ async def _reimage_initial( return deserialized # type: ignore @overload - async def begin_reimage( + async def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationContentWrapper, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8216,18 +10031,20 @@ async def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameters describing the fault simulation. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_reimage( + async def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8236,9 +10053,8 @@ async def begin_reimage( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8247,18 +10063,20 @@ async def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. + :param parameters: parameters describing the fault simulation. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_reimage( + async def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8267,9 +10085,8 @@ async def begin_reimage( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8278,27 +10095,42 @@ async def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. + :param parameters: parameters describing the fault simulation. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async - async def begin_reimage( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], **kwargs: Any - ) -> AsyncLROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8307,24 +10139,26 @@ async def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or - JSON or IO[bytes] - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :param parameters: parameters describing the fault simulation. Is one of the following types: + FaultSimulationContentWrapper, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + or JSON or IO[bytes] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._reimage_initial( + raw_result = await self._start_fault_simulation_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8338,9 +10172,18 @@ async def begin_reimage( await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) if cls: - return cls(pipeline_response, None, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -8355,20 +10198,36 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return AsyncLROPoller[None].from_continuation_token( + return AsyncLROPoller[_models.FaultSimulation].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return AsyncLROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - async def _restart_initial( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def _stop_fault_simulation_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any ) -> AsyncIterator[bytes]: error_map: MutableMapping = { @@ -8392,7 +10251,7 @@ async def _restart_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_restart_request( + _request = build_node_types_stop_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8408,6 +10267,7 @@ async def _restart_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 @@ -8428,12 +10288,12 @@ async def _restart_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -8441,18 +10301,17 @@ async def _restart_initial( return deserialized # type: ignore @overload - async def begin_restart( + async def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationIdContent, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8461,18 +10320,20 @@ async def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_restart( + async def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8481,9 +10342,8 @@ async def begin_restart( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8492,18 +10352,20 @@ async def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_restart( + async def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8512,9 +10374,8 @@ async def begin_restart( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8523,27 +10384,42 @@ async def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async - async def begin_restart( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any - ) -> AsyncLROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> AsyncLROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8552,24 +10428,26 @@ async def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or JSON or IO[bytes] - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: An instance of AsyncLROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.AsyncLROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = await self._restart_initial( + raw_result = await self._stop_fault_simulation_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8583,121 +10461,54 @@ async def begin_restart( await raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) # type: ignore - - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) - else: - polling_method = polling - if cont_token: - return AsyncLROPoller[None].from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output, - ) - return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - async def _start_initial( - self, - resource_group_name: str, - cluster_name: str, - node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], - **kwargs: Any - ) -> AsyncIterator[bytes]: - error_map: MutableMapping = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = kwargs.pop("params", {}) or {} - - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _content = None - if isinstance(parameters, (IOBase, bytes)): - _content = parameters - else: - _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - - _request = build_node_types_start_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - node_type_name=node_type_name, - subscription_id=self._config.subscription_id, - content_type=content_type, - api_version=self._config.api_version, - content=_content, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - _stream = True - pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [202]: - try: - await response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, - ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - response_headers = {} - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) - deserialized = response.iter_bytes() + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized - if cls: - return cls(pipeline_response, deserialized, response_headers) # type: ignore + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } - return deserialized # type: ignore + if polling is True: + polling_method: AsyncPollingMethod = cast( + AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + else: + polling_method = polling + if cont_token: + return AsyncLROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return AsyncLROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @overload - async def begin_start( + async def get_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationIdContent, *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8706,18 +10517,18 @@ async def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_start( + async def get_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8726,9 +10537,8 @@ async def begin_start( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8737,18 +10547,18 @@ async def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @overload - async def begin_start( + async def get_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -8757,9 +10567,8 @@ async def begin_start( *, content_type: str = "application/json", **kwargs: Any - ) -> AsyncLROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8768,27 +10577,41 @@ async def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace_async - async def begin_start( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + async def get_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any - ) -> AsyncLROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8797,61 +10620,201 @@ async def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or JSON or IO[bytes] - :return: An instance of AsyncLROPoller that returns None - :rtype: ~azure.core.polling.AsyncLROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = await self._start_initial( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - node_type_name=node_type_name, - parameters=parameters, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - await raw_result.http_response.read() # type: ignore - kwargs.pop("error_map", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) # type: ignore + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + _request = build_node_types_get_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - if polling is True: - polling_method: AsyncPollingMethod = cast( - AsyncPollingMethod, AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, ) - elif polling is False: - polling_method = cast(AsyncPollingMethod, AsyncNoPolling()) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - polling_method = polling - if cont_token: - return AsyncLROPoller[None].from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output, + deserialized = _deserialize(_models.FaultSimulation, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def list_fault_simulation( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> AsyncItemPaged["_models.FaultSimulation"]: + """Gets the list of recent fault simulations for the node type. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: An iterator like instance of FaultSimulation + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.FaultSimulation]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_node_types_list_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + async def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.FaultSimulation], + deserialized.get("value", []), ) - return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) class NodeTypeSkusOperations: @@ -8934,7 +10897,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -8947,7 +10913,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.NodeTypeAvailableSku], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.NodeTypeAvailableSku], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, AsyncList(list_of_elem) @@ -9116,6 +11085,7 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models. } _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 @@ -9137,7 +11107,7 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models. 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.LongRunningOperationResult, response.json()) diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_patch.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_patch.py index 87676c65a8f0..ea765788358a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_patch.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/aio/operations/_patch.py @@ -8,7 +8,6 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ - __all__: list[str] = [] # Add all objects you want publicly available to users at this package level diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/__init__.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/__init__.py index 3aee32038841..227c6f275d38 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/__init__.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/__init__.py @@ -31,6 +31,7 @@ ApplicationUpdateParametersProperties, ApplicationUpgradePolicy, ApplicationUserAssignedIdentity, + ApplyMaintenanceWindowRequest, AvailableOperationDisplay, AveragePartitionLoadScalingTrigger, AverageServiceLoadScalingTrigger, @@ -45,7 +46,14 @@ ErrorDetail, ErrorModelError, ErrorResponse, + FaultSimulation, + FaultSimulationConstraints, + FaultSimulationContent, + FaultSimulationContentWrapper, + FaultSimulationDetails, + FaultSimulationIdContent, FrontendConfiguration, + HostEndpointSettings, IpConfiguration, IpConfigurationPublicIPAddressConfiguration, IpTag, @@ -65,6 +73,7 @@ NodeType, NodeTypeActionParameters, NodeTypeAvailableSku, + NodeTypeFaultSimulation, NodeTypeNatConfig, NodeTypeProperties, NodeTypeSku, @@ -74,6 +83,7 @@ OperationResult, Partition, PartitionInstanceCountScaleMechanism, + ProxyAgentSettings, ProxyResource, Resource, ResourceAzStatus, @@ -85,6 +95,7 @@ RuntimeRollingUpgradeUpdateMonitoringPolicy, RuntimeServiceTypeHealthPolicy, RuntimeUpdateApplicationUpgradeParameters, + ScaleInPolicy, ScalingMechanism, ScalingPolicy, ScalingTrigger, @@ -123,6 +134,7 @@ VmImagePlan, VmManagedIdentity, VmssDataDisk, + ZoneFaultSimulationContent, ) from ._enums import ( # type: ignore @@ -136,6 +148,8 @@ DiskType, EvictionPolicyType, FailureAction, + FaultKind, + FaultSimulationStatus, HealthFilter, IPAddressType, ManagedClusterAddOnFeature, @@ -158,6 +172,7 @@ RuntimeFailureAction, RuntimeRollingUpgradeMode, RuntimeUpgradeKind, + ScaleInPolicyMode, SecurityEncryptionType, SecurityType, ServiceCorrelationScheme, @@ -167,6 +182,7 @@ ServicePlacementPolicyType, ServiceScalingMechanismKind, ServiceScalingTriggerKind, + SfmcOperationStatus, SkuName, UpdateType, VmSetupAction, @@ -195,6 +211,7 @@ "ApplicationUpdateParametersProperties", "ApplicationUpgradePolicy", "ApplicationUserAssignedIdentity", + "ApplyMaintenanceWindowRequest", "AvailableOperationDisplay", "AveragePartitionLoadScalingTrigger", "AverageServiceLoadScalingTrigger", @@ -209,7 +226,14 @@ "ErrorDetail", "ErrorModelError", "ErrorResponse", + "FaultSimulation", + "FaultSimulationConstraints", + "FaultSimulationContent", + "FaultSimulationContentWrapper", + "FaultSimulationDetails", + "FaultSimulationIdContent", "FrontendConfiguration", + "HostEndpointSettings", "IpConfiguration", "IpConfigurationPublicIPAddressConfiguration", "IpTag", @@ -229,6 +253,7 @@ "NodeType", "NodeTypeActionParameters", "NodeTypeAvailableSku", + "NodeTypeFaultSimulation", "NodeTypeNatConfig", "NodeTypeProperties", "NodeTypeSku", @@ -238,6 +263,7 @@ "OperationResult", "Partition", "PartitionInstanceCountScaleMechanism", + "ProxyAgentSettings", "ProxyResource", "Resource", "ResourceAzStatus", @@ -249,6 +275,7 @@ "RuntimeRollingUpgradeUpdateMonitoringPolicy", "RuntimeServiceTypeHealthPolicy", "RuntimeUpdateApplicationUpgradeParameters", + "ScaleInPolicy", "ScalingMechanism", "ScalingPolicy", "ScalingTrigger", @@ -287,6 +314,7 @@ "VmImagePlan", "VmManagedIdentity", "VmssDataDisk", + "ZoneFaultSimulationContent", "Access", "AutoGeneratedDomainNameLabelScope", "ClusterState", @@ -297,6 +325,8 @@ "DiskType", "EvictionPolicyType", "FailureAction", + "FaultKind", + "FaultSimulationStatus", "HealthFilter", "IPAddressType", "ManagedClusterAddOnFeature", @@ -319,6 +349,7 @@ "RuntimeFailureAction", "RuntimeRollingUpgradeMode", "RuntimeUpgradeKind", + "ScaleInPolicyMode", "SecurityEncryptionType", "SecurityType", "ServiceCorrelationScheme", @@ -328,6 +359,7 @@ "ServicePlacementPolicyType", "ServiceScalingMechanismKind", "ServiceScalingTriggerKind", + "SfmcOperationStatus", "SkuName", "UpdateType", "VmSetupAction", diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_enums.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_enums.py index 3b7093f977c5..415077204438 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_enums.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_enums.py @@ -160,6 +160,36 @@ class FailureAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): fails. Service Fabric will not proceed to the next upgrade domain automatically.""" +class FaultKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """The kind of fault simulation.""" + + ZONE = "Zone" + """Simulates an availability zone down.""" + + +class FaultSimulationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Fault simulation status.""" + + STARTING = "Starting" + """Indicates the fault simulation is starting. The simulation will have this status while the + start operation is in progress.""" + ACTIVE = "Active" + """Indicates the fault simulation is active. The simulation will have this status after the start + operation has completed successfully.""" + STOPPING = "Stopping" + """Indicates the fault simulation is stopping. The simulation will have this status while the stop + operation is in progress.""" + DONE = "Done" + """Indicates the fault simulation is done. The simulation will have this status after the stop + operation has completed successfully.""" + START_FAILED = "StartFailed" + """Indicates the fault simulation has failed on start. The simulation will have this status after + the start operation fails.""" + STOP_FAILED = "StopFailed" + """Indicates the fault simulation has failed on stop. The simulation will have this status after + the stop operation fails.""" + + class HealthFilter(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Enum for filtering health events.""" @@ -416,6 +446,20 @@ class RuntimeUpgradeKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The upgrade progresses one upgrade domain at a time.""" +class ScaleInPolicyMode(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Specifies the scale in policy mode for a node type.""" + + DEFAULT = "Default" + """Default scale in policy mode where the system will choose which nodes to remove when scaling + in.""" + OLDEST_NODE_FIRST = "OldestNodeFirst" + """OldestNodeFirst scale in policy mode where the oldest node in the node type will be removed + first when scaling in.""" + NEWEST_NODE_FIRST = "NewestNodeFirst" + """NewestNodeFirst scale in policy mode where the newest node in the node type will be removed + first when scaling in.""" + + class SecurityEncryptionType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Specifies the securityEncryptionType type of the nodeType. Only DiskWithVMGuestState and VMGuestStateOnly are currently supported. @@ -538,6 +582,23 @@ class ServiceScalingTriggerKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): value is 1.""" +class SfmcOperationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Sfmc operation status.""" + + CREATED = "Created" + """Operation created.""" + STARTED = "Started" + """Operation started.""" + SUCCEEDED = "Succeeded" + """Operation succeeded.""" + FAILED = "Failed" + """Operation failed.""" + ABORTED = "Aborted" + """Operation aborted.""" + CANCELED = "Canceled" + """Operation canceled.""" + + class SkuName(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Sku Name.""" diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_models.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_models.py index 7ab0c0a53edd..27809b2a96e9 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_models.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_models.py @@ -13,6 +13,7 @@ from .._utils.model_base import Model as _Model, rest_discriminator, rest_field from ._enums import ( + FaultKind, PartitionScheme, ServiceKind, ServicePlacementPolicyType, @@ -965,6 +966,56 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class ApplyMaintenanceWindowRequest(_Model): + """Describes the request to apply a maintenance window on a Service Fabric Managed Cluster. + + :ivar start_date_time: Effective start date of the maintenance window in yyyy-MM-dd HH:mm + format. If not provided, defaults to the current time. + :vartype start_date_time: str + :ivar duration: Duration of the maintenance window in hh:mm format. If not provided, defaults + to 5 hours. Example: 08:30 for 8 and a half hours. + :vartype duration: str + :ivar time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. If not provided, defaults to UTC. + Example: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Central + Australia Standard Time. + :vartype time_zone: str + """ + + start_date_time: Optional[str] = rest_field( + name="startDateTime", visibility=["read", "create", "update", "delete", "query"] + ) + """Effective start date of the maintenance window in yyyy-MM-dd HH:mm format. If not provided, + defaults to the current time.""" + duration: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Duration of the maintenance window in hh:mm format. If not provided, defaults to 5 hours. + Example: 08:30 for 8 and a half hours.""" + time_zone: Optional[str] = rest_field(name="timeZone", visibility=["read", "create", "update", "delete", "query"]) + """Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. If not provided, defaults to UTC. + Example: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Central + Australia Standard Time.""" + + @overload + def __init__( + self, + *, + start_date_time: Optional[str] = None, + duration: Optional[str] = None, + time_zone: Optional[str] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class AvailableOperationDisplay(_Model): """Operation supported by the Service Fabric resource provider. @@ -1711,6 +1762,252 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class FaultSimulation(_Model): + """Fault simulation object with status. + + :ivar simulation_id: unique identifier for the fault simulation. + :vartype simulation_id: str + :ivar status: Fault simulation status. Known values are: "Starting", "Active", "Stopping", + "Done", "StartFailed", and "StopFailed". + :vartype status: str or ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationStatus + :ivar start_time: The start time of the fault simulation. + :vartype start_time: ~datetime.datetime + :ivar end_time: The end time of the fault simulation. + :vartype end_time: ~datetime.datetime + :ivar details: Fault simulation details. + :vartype details: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationDetails + """ + + simulation_id: Optional[str] = rest_field( + name="simulationId", visibility=["read", "create", "update", "delete", "query"] + ) + """unique identifier for the fault simulation.""" + status: Optional[Union[str, "_models.FaultSimulationStatus"]] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Fault simulation status. Known values are: \"Starting\", \"Active\", \"Stopping\", \"Done\", + \"StartFailed\", and \"StopFailed\".""" + start_time: Optional[datetime.datetime] = rest_field( + name="startTime", visibility=["read", "create", "update", "delete", "query"], format="rfc3339" + ) + """The start time of the fault simulation.""" + end_time: Optional[datetime.datetime] = rest_field( + name="endTime", visibility=["read", "create", "update", "delete", "query"], format="rfc3339" + ) + """The end time of the fault simulation.""" + details: Optional["_models.FaultSimulationDetails"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Fault simulation details.""" + + @overload + def __init__( + self, + *, + simulation_id: Optional[str] = None, + status: Optional[Union[str, "_models.FaultSimulationStatus"]] = None, + start_time: Optional[datetime.datetime] = None, + end_time: Optional[datetime.datetime] = None, + details: Optional["_models.FaultSimulationDetails"] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + +class FaultSimulationConstraints(_Model): + """Constraints for Fault Simulation action. + + :ivar expiration_time: The absolute expiration timestamp (UTC) after which this fault + simulation should be stopped if it's still active. + :vartype expiration_time: ~datetime.datetime + """ + + expiration_time: Optional[datetime.datetime] = rest_field( + name="expirationTime", visibility=["read", "create", "update", "delete", "query"], format="rfc3339" + ) + """The absolute expiration timestamp (UTC) after which this fault simulation should be stopped if + it's still active.""" + + @overload + def __init__( + self, + *, + expiration_time: Optional[datetime.datetime] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + +class FaultSimulationContent(_Model): + """Parameters for Fault Simulation action. + + You probably want to use the sub-classes and not this class directly. Known sub-classes are: + ZoneFaultSimulationContent + + :ivar fault_kind: The kind of fault to be simulated. Required. "Zone" + :vartype fault_kind: str or ~azure.mgmt.servicefabricmanagedclusters.models.FaultKind + :ivar force: Force the action to go through without any check on the cluster. + :vartype force: bool + :ivar constraints: Constraints for Fault Simulation action. + :vartype constraints: + ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationConstraints + """ + + __mapping__: dict[str, _Model] = {} + fault_kind: str = rest_discriminator(name="faultKind", visibility=["read", "create", "update", "delete", "query"]) + """The kind of fault to be simulated. Required. \"Zone\"""" + force: Optional[bool] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Force the action to go through without any check on the cluster.""" + constraints: Optional["_models.FaultSimulationConstraints"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Constraints for Fault Simulation action.""" + + @overload + def __init__( + self, + *, + fault_kind: str, + force: Optional[bool] = None, + constraints: Optional["_models.FaultSimulationConstraints"] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + +class FaultSimulationContentWrapper(_Model): + """Fault Simulation Request for Start action. + + :ivar parameters: Parameters for Fault Simulation start action. Required. + :vartype parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContent + """ + + parameters: "_models.FaultSimulationContent" = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Parameters for Fault Simulation start action. Required.""" + + @overload + def __init__( + self, + *, + parameters: "_models.FaultSimulationContent", + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + +class FaultSimulationDetails(_Model): + """Details for Fault Simulation. + + :ivar cluster_id: unique identifier for the cluster resource. + :vartype cluster_id: str + :ivar operation_id: unique identifier for the operation associated with the fault simulation. + :vartype operation_id: str + :ivar node_type_fault_simulation: List of node type simulations associated with the cluster + fault simulation. + :vartype node_type_fault_simulation: + list[~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeFaultSimulation] + :ivar parameters: Fault simulation parameters. + :vartype parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContent + """ + + cluster_id: Optional[str] = rest_field(name="clusterId", visibility=["read", "create", "update", "delete", "query"]) + """unique identifier for the cluster resource.""" + operation_id: Optional[str] = rest_field( + name="operationId", visibility=["read", "create", "update", "delete", "query"] + ) + """unique identifier for the operation associated with the fault simulation.""" + node_type_fault_simulation: Optional[list["_models.NodeTypeFaultSimulation"]] = rest_field( + name="nodeTypeFaultSimulation", visibility=["read", "create", "update", "delete", "query"] + ) + """List of node type simulations associated with the cluster fault simulation.""" + parameters: Optional["_models.FaultSimulationContent"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Fault simulation parameters.""" + + @overload + def __init__( + self, + *, + cluster_id: Optional[str] = None, + operation_id: Optional[str] = None, + node_type_fault_simulation: Optional[list["_models.NodeTypeFaultSimulation"]] = None, + parameters: Optional["_models.FaultSimulationContent"] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + +class FaultSimulationIdContent(_Model): + """Parameters for Fault Simulation id. + + :ivar simulation_id: unique identifier for the fault simulation. Required. + :vartype simulation_id: str + """ + + simulation_id: str = rest_field(name="simulationId", visibility=["read", "create", "update", "delete", "query"]) + """unique identifier for the fault simulation. Required.""" + + @overload + def __init__( + self, + *, + simulation_id: str, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class FrontendConfiguration(_Model): """Describes the frontend configurations for the node type. @@ -1776,6 +2073,50 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class HostEndpointSettings(_Model): + """Specifies particular host endpoint settings. + + :ivar mode: Specifies the execution mode. In Audit mode, the system acts as if it is enforcing + the access control policy, including emitting access denial entries in the logs but it does not + actually deny any requests to host endpoints. In Enforce mode, the system will enforce the + access control and it is the recommended mode of operation. + :vartype mode: str + :ivar in_vm_access_control_profile_reference_id: Specifies the InVMAccessControlProfileVersion + resource id in the format of + /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}. + :vartype in_vm_access_control_profile_reference_id: str + """ + + mode: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Specifies the execution mode. In Audit mode, the system acts as if it is enforcing the access + control policy, including emitting access denial entries in the logs but it does not actually + deny any requests to host endpoints. In Enforce mode, the system will enforce the access + control and it is the recommended mode of operation.""" + in_vm_access_control_profile_reference_id: Optional[str] = rest_field( + name="inVMAccessControlProfileReferenceId", visibility=["read", "create", "update", "delete", "query"] + ) + """Specifies the InVMAccessControlProfileVersion resource id in the format of + /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}.""" + + @overload + def __init__( + self, + *, + mode: Optional[str] = None, + in_vm_access_control_profile_reference_id: Optional[str] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class IpConfiguration(_Model): """Specifies an IP configuration of the network interface. @@ -3230,6 +3571,8 @@ class NodeType(ProxyResource): "zone_balance", "is_outbound_only", "enable_resilient_ephemeral_os_disk", + "scale_in_policy", + "proxy_agent_settings", ] @overload @@ -3334,6 +3677,62 @@ class NodeTypeAvailableSku(_Model): """Provides information about how the node count can be scaled.""" +class NodeTypeFaultSimulation(_Model): + """Node type fault simulation object with status. + + :ivar node_type_name: Node type name. + :vartype node_type_name: str + :ivar status: Fault simulation status. Known values are: "Starting", "Active", "Stopping", + "Done", "StartFailed", and "StopFailed". + :vartype status: str or ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationStatus + :ivar operation_id: Current or latest asynchronous operation identifier on the node type. + :vartype operation_id: str + :ivar operation_status: Current or latest asynchronous operation status on the node type. Known + values are: "Created", "Started", "Succeeded", "Failed", "Aborted", and "Canceled". + :vartype operation_status: str or + ~azure.mgmt.servicefabricmanagedclusters.models.SfmcOperationStatus + """ + + node_type_name: Optional[str] = rest_field( + name="nodeTypeName", visibility=["read", "create", "update", "delete", "query"] + ) + """Node type name.""" + status: Optional[Union[str, "_models.FaultSimulationStatus"]] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Fault simulation status. Known values are: \"Starting\", \"Active\", \"Stopping\", \"Done\", + \"StartFailed\", and \"StopFailed\".""" + operation_id: Optional[str] = rest_field( + name="operationId", visibility=["read", "create", "update", "delete", "query"] + ) + """Current or latest asynchronous operation identifier on the node type.""" + operation_status: Optional[Union[str, "_models.SfmcOperationStatus"]] = rest_field( + name="operationStatus", visibility=["read", "create", "update", "delete", "query"] + ) + """Current or latest asynchronous operation status on the node type. Known values are: + \"Created\", \"Started\", \"Succeeded\", \"Failed\", \"Aborted\", and \"Canceled\".""" + + @overload + def __init__( + self, + *, + node_type_name: Optional[str] = None, + status: Optional[Union[str, "_models.FaultSimulationStatus"]] = None, + operation_id: Optional[str] = None, + operation_status: Optional[Union[str, "_models.SfmcOperationStatus"]] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class NodeTypeNatConfig(_Model): """Provides information about NAT configuration on the default public Load Balancer for the node type. @@ -3571,6 +3970,13 @@ class NodeTypeProperties(_Model): resilient ephemeral OS disk when using a supported SKU size. A resilient ephemeral OS disk provides improved reliability for ephemeral OS disks by enabling full caching. :vartype enable_resilient_ephemeral_os_disk: bool + :ivar scale_in_policy: Specifies the scale in policy for the node type, which will be used when + scale in happens on the cluster. If not specified, the default is Default which means the + platform will decide which nodes to remove during scale in. + :vartype scale_in_policy: ~azure.mgmt.servicefabricmanagedclusters.models.ScaleInPolicy + :ivar proxy_agent_settings: Specifies the settings for the proxy agent on the node type. + :vartype proxy_agent_settings: + ~azure.mgmt.servicefabricmanagedclusters.models.ProxyAgentSettings """ is_primary: bool = rest_field(name="isPrimary", visibility=["read", "create", "update", "delete", "query"]) @@ -3835,6 +4241,16 @@ class NodeTypeProperties(_Model): """Specifies whether the node type should use a resilient ephemeral OS disk when using a supported SKU size. A resilient ephemeral OS disk provides improved reliability for ephemeral OS disks by enabling full caching.""" + scale_in_policy: Optional["_models.ScaleInPolicy"] = rest_field( + name="scaleInPolicy", visibility=["read", "create", "update", "delete", "query"] + ) + """Specifies the scale in policy for the node type, which will be used when scale in happens on + the cluster. If not specified, the default is Default which means the platform will decide + which nodes to remove during scale in.""" + proxy_agent_settings: Optional["_models.ProxyAgentSettings"] = rest_field( + name="proxyAgentSettings", visibility=["read", "create", "update", "delete", "query"] + ) + """Specifies the settings for the proxy agent on the node type.""" @overload def __init__( # pylint: disable=too-many-locals @@ -3895,6 +4311,8 @@ def __init__( # pylint: disable=too-many-locals zone_balance: Optional[bool] = None, is_outbound_only: Optional[bool] = None, enable_resilient_ephemeral_os_disk: Optional[bool] = None, + scale_in_policy: Optional["_models.ScaleInPolicy"] = None, + proxy_agent_settings: Optional["_models.ProxyAgentSettings"] = None, ) -> None: ... @overload @@ -4129,6 +4547,72 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: self.kind = ServiceScalingMechanismKind.SCALE_PARTITION_INSTANCE_COUNT # type: ignore +class ProxyAgentSettings(_Model): + """Specifies ProxyAgent settings for the virtual machine or virtual machine scale set. + + :ivar enabled: Specifies whether ProxyAgent feature should be enabled on the virtual machine or + virtual machine scale set. + :vartype enabled: bool + :ivar key_incarnation_id: Increasing the value of this property allows users to reset the key + used for securing communication channel between guest and host. + :vartype key_incarnation_id: int + :ivar wire_server: Specifies the Wire Server endpoint settings while creating the virtual + machine or virtual machine scale set. + :vartype wire_server: ~azure.mgmt.servicefabricmanagedclusters.models.HostEndpointSettings + :ivar imds: Specifies the IMDS endpoint settings while creating the virtual machine or virtual + machine scale set. + :vartype imds: ~azure.mgmt.servicefabricmanagedclusters.models.HostEndpointSettings + :ivar add_proxy_agent_extension: Specify whether to implicitly install the ProxyAgent + Extension. This option is currently applicable only for Linux Os. + :vartype add_proxy_agent_extension: bool + """ + + enabled: Optional[bool] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual + machine scale set.""" + key_incarnation_id: Optional[int] = rest_field( + name="keyIncarnationId", visibility=["read", "create", "update", "delete", "query"] + ) + """Increasing the value of this property allows users to reset the key used for securing + communication channel between guest and host.""" + wire_server: Optional["_models.HostEndpointSettings"] = rest_field( + name="wireServer", visibility=["read", "create", "update", "delete", "query"] + ) + """Specifies the Wire Server endpoint settings while creating the virtual machine or virtual + machine scale set.""" + imds: Optional["_models.HostEndpointSettings"] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """Specifies the IMDS endpoint settings while creating the virtual machine or virtual machine + scale set.""" + add_proxy_agent_extension: Optional[bool] = rest_field( + name="addProxyAgentExtension", visibility=["read", "create", "update", "delete", "query"] + ) + """Specify whether to implicitly install the ProxyAgent Extension. This option is currently + applicable only for Linux Os.""" + + @overload + def __init__( + self, + *, + enabled: Optional[bool] = None, + key_incarnation_id: Optional[int] = None, + wire_server: Optional["_models.HostEndpointSettings"] = None, + imds: Optional["_models.HostEndpointSettings"] = None, + add_proxy_agent_extension: Optional[bool] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class ResourceAzStatus(_Model): """Describes Az Resiliency status of Base resources. @@ -4779,6 +5263,39 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) +class ScaleInPolicy(_Model): + """Scale in policy for a node type. This is used to specify the mode for scale in operations on a + node type. + + :ivar mode: The scale in policy mode for a node type. Known values are: "Default", + "OldestNodeFirst", and "NewestNodeFirst". + :vartype mode: str or ~azure.mgmt.servicefabricmanagedclusters.models.ScaleInPolicyMode + """ + + mode: Optional[Union[str, "_models.ScaleInPolicyMode"]] = rest_field( + visibility=["read", "create", "update", "delete", "query"] + ) + """The scale in policy mode for a node type. Known values are: \"Default\", \"OldestNodeFirst\", + and \"NewestNodeFirst\".""" + + @overload + def __init__( + self, + *, + mode: Optional[Union[str, "_models.ScaleInPolicyMode"]] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + class ScalingPolicy(_Model): """Specifies a metric to load balance a service during runtime. @@ -6684,3 +7201,43 @@ def __init__(self, mapping: Mapping[str, Any]) -> None: def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) + + +class ZoneFaultSimulationContent(FaultSimulationContent, discriminator="Zone"): + """Parameters for Zone Fault Simulation action. + + :ivar force: Force the action to go through without any check on the cluster. + :vartype force: bool + :ivar constraints: Constraints for Fault Simulation action. + :vartype constraints: + ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationConstraints + :ivar zones: Indicates the zones of the fault simulation. + :vartype zones: list[str] + :ivar fault_kind: The kind of fault simulation. Required. Simulates an availability zone down. + :vartype fault_kind: str or ~azure.mgmt.servicefabricmanagedclusters.models.ZONE + """ + + zones: Optional[list[str]] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Indicates the zones of the fault simulation.""" + fault_kind: Literal[FaultKind.ZONE] = rest_discriminator(name="faultKind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore + """The kind of fault simulation. Required. Simulates an availability zone down.""" + + @overload + def __init__( + self, + *, + force: Optional[bool] = None, + constraints: Optional["_models.FaultSimulationConstraints"] = None, + zones: Optional[list[str]] = None, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + self.fault_kind = FaultKind.ZONE # type: ignore diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_patch.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_patch.py index 87676c65a8f0..ea765788358a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_patch.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/models/_patch.py @@ -8,7 +8,6 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ - __all__: list[str] = [] # Add all objects you want publicly available to users at this package level diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_operations.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_operations.py index d2e4dc6aea14..b85c7afe0dea 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_operations.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_operations.py @@ -51,7 +51,7 @@ def build_operations_list_request(**kwargs: Any) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -72,7 +72,7 @@ def build_applications_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -102,7 +102,7 @@ def build_applications_create_or_update_request( # pylint: disable=name-too-lon _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -134,7 +134,7 @@ def build_applications_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -164,7 +164,7 @@ def build_applications_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}" path_format_arguments = { @@ -188,7 +188,7 @@ def build_applications_list_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -215,7 +215,7 @@ def build_applications_read_upgrade_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/fetchUpgradeStatus" path_format_arguments = { @@ -240,7 +240,7 @@ def build_applications_resume_upgrade_request( # pylint: disable=name-too-long _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/resumeUpgrade" path_format_arguments = { @@ -267,7 +267,7 @@ def build_applications_start_rollback_request( # pylint: disable=name-too-long ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/startRollback" path_format_arguments = { @@ -292,7 +292,7 @@ def build_applications_update_upgrade_request( # pylint: disable=name-too-long _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/updateUpgrade" path_format_arguments = { @@ -321,7 +321,7 @@ def build_applications_fetch_health_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/fetchHealth" path_format_arguments = { @@ -350,7 +350,7 @@ def build_applications_restart_deployed_code_package_request( # pylint: disable _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/restartDeployedCodePackage" path_format_arguments = { @@ -378,7 +378,7 @@ def build_application_types_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -408,7 +408,7 @@ def build_application_types_create_or_update_request( # pylint: disable=name-to _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -440,7 +440,7 @@ def build_application_types_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -470,7 +470,7 @@ def build_application_types_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applicationTypes/{applicationTypeName}" path_format_arguments = { @@ -494,7 +494,7 @@ def build_application_types_list_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -527,7 +527,7 @@ def build_application_type_versions_get_request( # pylint: disable=name-too-lon _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -563,7 +563,7 @@ def build_application_type_versions_create_or_update_request( # pylint: disable _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -601,7 +601,7 @@ def build_application_type_versions_update_request( # pylint: disable=name-too- _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -637,7 +637,7 @@ def build_application_type_versions_delete_request( # pylint: disable=name-too- ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}" path_format_arguments = { @@ -662,7 +662,7 @@ def build_application_type_versions_list_by_application_types_request( # pylint _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -696,7 +696,7 @@ def build_services_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -732,7 +732,7 @@ def build_services_create_or_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -770,7 +770,7 @@ def build_services_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -806,7 +806,7 @@ def build_services_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/services/{serviceName}" path_format_arguments = { @@ -831,7 +831,7 @@ def build_services_list_by_applications_request( # pylint: disable=name-too-lon _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -866,7 +866,7 @@ def build_services_restart_replica_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applications/{applicationName}/services/{serviceName}/restartReplica" path_format_arguments = { @@ -895,7 +895,7 @@ def build_managed_cluster_version_get_request( # pylint: disable=name-too-long _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -923,7 +923,7 @@ def build_managed_cluster_version_list_request( # pylint: disable=name-too-long _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -956,7 +956,7 @@ def build_managed_cluster_version_get_by_environment_request( # pylint: disable _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -988,7 +988,7 @@ def build_managed_cluster_version_list_by_environment_request( # pylint: disabl _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1016,7 +1016,7 @@ def build_managed_unsupported_vm_sizes_get_request( # pylint: disable=name-too- _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1044,7 +1044,7 @@ def build_managed_unsupported_vm_sizes_list_request( # pylint: disable=name-too _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1071,7 +1071,7 @@ def build_managed_clusters_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1100,7 +1100,7 @@ def build_managed_clusters_create_or_update_request( # pylint: disable=name-too _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1131,7 +1131,7 @@ def build_managed_clusters_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1160,7 +1160,7 @@ def build_managed_clusters_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}" path_format_arguments = { @@ -1183,7 +1183,7 @@ def build_managed_clusters_list_by_resource_group_request( # pylint: disable=na _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1210,7 +1210,7 @@ def build_managed_clusters_list_by_subscription_request( # pylint: disable=name _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1230,13 +1230,128 @@ def build_managed_clusters_list_by_subscription_request( # pylint: disable=name return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) +def build_managed_clusters_get_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/getFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_managed_clusters_list_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/listFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_managed_clusters_start_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/startFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_managed_clusters_stop_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/stopFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + def build_managed_az_resiliency_status_get_request( # pylint: disable=name-too-long resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1261,9 +1376,11 @@ def build_managed_az_resiliency_status_get_request( # pylint: disable=name-too- def build_managed_apply_maintenance_window_post_request( # pylint: disable=name-too-long resource_group_name: str, cluster_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/applyMaintenanceWindow" path_format_arguments = { @@ -1277,7 +1394,11 @@ def build_managed_apply_maintenance_window_post_request( # pylint: disable=name # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") - return HttpRequest(method="POST", url=_url, params=_params, **kwargs) + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) def build_managed_maintenance_window_status_get_request( # pylint: disable=name-too-long @@ -1286,7 +1407,7 @@ def build_managed_maintenance_window_status_get_request( # pylint: disable=name _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1314,7 +1435,7 @@ def build_node_types_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1344,7 +1465,7 @@ def build_node_types_create_or_update_request( # pylint: disable=name-too-long _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1376,7 +1497,7 @@ def build_node_types_update_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1406,7 +1527,7 @@ def build_node_types_delete_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}" path_format_arguments = { @@ -1430,7 +1551,7 @@ def build_node_types_list_by_managed_clusters_request( # pylint: disable=name-t _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1459,7 +1580,7 @@ def build_node_types_deallocate_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/deallocate" path_format_arguments = { @@ -1488,7 +1609,7 @@ def build_node_types_delete_node_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/deleteNode" path_format_arguments = { @@ -1517,7 +1638,7 @@ def build_node_types_redeploy_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/redeploy" path_format_arguments = { @@ -1546,7 +1667,7 @@ def build_node_types_reimage_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/reimage" path_format_arguments = { @@ -1575,7 +1696,7 @@ def build_node_types_restart_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/restart" path_format_arguments = { @@ -1604,7 +1725,7 @@ def build_node_types_start_request( _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/start" path_format_arguments = { @@ -1626,13 +1747,132 @@ def build_node_types_start_request( return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) +def build_node_types_start_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, node_type_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/startFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + "nodeTypeName": _SERIALIZER.url("node_type_name", node_type_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_node_types_stop_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, node_type_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/stopFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + "nodeTypeName": _SERIALIZER.url("node_type_name", node_type_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_node_types_get_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, node_type_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/getFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + "nodeTypeName": _SERIALIZER.url("node_type_name", node_type_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_node_types_list_fault_simulation_request( # pylint: disable=name-too-long + resource_group_name: str, cluster_name: str, node_type_name: str, subscription_id: str, **kwargs: Any +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) + + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/nodeTypes/{nodeTypeName}/listFaultSimulation" + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str"), + "resourceGroupName": _SERIALIZER.url("resource_group_name", resource_group_name, "str"), + "clusterName": _SERIALIZER.url("cluster_name", cluster_name, "str"), + "nodeTypeName": _SERIALIZER.url("node_type_name", node_type_name, "str"), + } + + _url: str = _url.format(**path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs) + + def build_node_type_skus_list_request( resource_group_name: str, cluster_name: str, node_type_name: str, subscription_id: str, **kwargs: Any ) -> HttpRequest: _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1660,7 +1900,7 @@ def build_operation_results_get_request( ) -> HttpRequest: _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) # Construct URL _url = "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/managedClusterOperationResults/{operationId}" path_format_arguments = { @@ -1683,7 +1923,7 @@ def build_operation_status_get_request( _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = case_insensitive_dict(kwargs.pop("params", {}) or {}) - api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-02-01")) + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2026-05-01-preview")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -1774,7 +2014,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -1787,7 +2030,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.OperationResult], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.OperationResult], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -1878,6 +2124,7 @@ def get( } _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 @@ -1899,7 +2146,7 @@ def get( 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.ApplicationResource, response.json()) @@ -1953,6 +2200,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 @@ -1979,7 +2227,7 @@ def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2208,6 +2456,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 @@ -2234,7 +2483,7 @@ def _update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2448,6 +2697,7 @@ def _delete_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 @@ -2474,7 +2724,7 @@ def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2602,7 +2852,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -2615,7 +2868,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ApplicationResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -2671,6 +2927,7 @@ def _read_upgrade_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 @@ -2696,7 +2953,7 @@ def _read_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -2811,6 +3068,7 @@ def _resume_upgrade_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 @@ -2836,7 +3094,7 @@ def _resume_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3043,6 +3301,7 @@ def _start_rollback_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 @@ -3068,7 +3327,7 @@ def _start_rollback_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3183,6 +3442,7 @@ def _update_upgrade_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 @@ -3208,7 +3468,7 @@ def _update_upgrade_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3393,7 +3653,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def _fetch_health_initial( self, @@ -3440,6 +3700,7 @@ def _fetch_health_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 @@ -3465,7 +3726,7 @@ def _fetch_health_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3578,7 +3839,7 @@ def begin_fetch_health( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def begin_fetch_health( self, @@ -3666,7 +3927,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def _restart_deployed_code_package_initial( self, @@ -3713,6 +3974,7 @@ def _restart_deployed_code_package_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 @@ -3738,7 +4000,7 @@ def _restart_deployed_code_package_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -3852,7 +4114,7 @@ def begin_restart_deployed_code_package( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def begin_restart_deployed_code_package( self, @@ -3994,6 +4256,7 @@ def get( } _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 @@ -4015,7 +4278,7 @@ def get( 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.ApplicationTypeResource, response.json()) @@ -4181,6 +4444,7 @@ def create_or_update( } _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 @@ -4202,7 +4466,7 @@ def create_or_update( 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.ApplicationTypeResource, response.json()) @@ -4366,6 +4630,7 @@ def update( } _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 @@ -4387,7 +4652,7 @@ def update( 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.ApplicationTypeResource, response.json()) @@ -4426,6 +4691,7 @@ def _delete_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 @@ -4452,7 +4718,7 @@ def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -4580,7 +4846,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -4593,7 +4862,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ApplicationTypeResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationTypeResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -4688,6 +4960,7 @@ def get( } _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 @@ -4709,7 +4982,7 @@ def get( 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.ApplicationTypeVersionResource, response.json()) @@ -4765,6 +5038,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 @@ -4791,7 +5065,7 @@ def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -5166,6 +5440,7 @@ def update( } _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 @@ -5187,7 +5462,7 @@ def update( 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.ApplicationTypeVersionResource, response.json()) @@ -5227,6 +5502,7 @@ def _delete_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 @@ -5253,7 +5529,7 @@ def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -5387,7 +5663,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -5400,7 +5679,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ApplicationTypeVersionResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ApplicationTypeVersionResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -5495,6 +5777,7 @@ def get( } _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 @@ -5516,7 +5799,7 @@ def get( 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.ServiceResource, response.json()) @@ -5572,6 +5855,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 @@ -5598,7 +5882,7 @@ def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -5969,6 +6253,7 @@ def update( } _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 @@ -5990,7 +6275,7 @@ def update( 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.ServiceResource, response.json()) @@ -6030,6 +6315,7 @@ def _delete_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 @@ -6056,7 +6342,7 @@ def _delete_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6191,7 +6477,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -6204,7 +6493,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ServiceResource], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ServiceResource], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -6243,7 +6535,7 @@ def get_next(next_link=None): "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def _restart_replica_initial( self, @@ -6292,6 +6584,7 @@ def _restart_replica_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 @@ -6317,7 +6610,7 @@ def _restart_replica_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -6440,7 +6733,7 @@ def begin_restart_replica( "content_type", ] }, - api_versions_list=["2025-10-01-preview", "2026-02-01"], + api_versions_list=["2025-10-01-preview", "2026-02-01", "2026-05-01-preview"], ) def begin_restart_replica( self, @@ -6583,6 +6876,7 @@ def get(self, location: str, cluster_version: str, **kwargs: Any) -> _models.Man } _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 @@ -6604,7 +6898,7 @@ def get(self, location: str, cluster_version: str, **kwargs: Any) -> _models.Man 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.ManagedClusterCodeVersionResult, response.json()) @@ -6651,6 +6945,7 @@ def list(self, location: str, **kwargs: Any) -> List[_models.ManagedClusterCodeV } _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 @@ -6672,7 +6967,7 @@ def list(self, location: str, **kwargs: Any) -> List[_models.ManagedClusterCodeV 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(List[_models.ManagedClusterCodeVersionResult], response.json()) @@ -6734,6 +7029,7 @@ def get_by_environment( } _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 @@ -6755,7 +7051,7 @@ def get_by_environment( 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.ManagedClusterCodeVersionResult, response.json()) @@ -6808,6 +7104,7 @@ def list_by_environment( } _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 @@ -6829,7 +7126,7 @@ def list_by_environment( 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(List[_models.ManagedClusterCodeVersionResult], response.json()) @@ -6862,7 +7159,7 @@ def __init__(self, *args, **kwargs) -> None: def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.ManagedVMSize: """Get unsupported vm size for Service Fabric Managed Clusters. - :param location: The location for the cluster code versions. This is different from cluster + :param location: The location for the unsupported VM sizes. This is different from cluster location. Required. :type location: str :param vm_size: VM Size name. Required. @@ -6897,6 +7194,7 @@ def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.ManagedVMSi } _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 @@ -6918,7 +7216,7 @@ def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.ManagedVMSi 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.ManagedVMSize, response.json()) @@ -6931,7 +7229,7 @@ def get(self, location: str, vm_size: str, **kwargs: Any) -> _models.ManagedVMSi def list(self, location: str, **kwargs: Any) -> ItemPaged["_models.ManagedVMSize"]: """Get the lists of unsupported vm sizes for Service Fabric Managed Clusters. - :param location: The location for the cluster code versions. This is different from cluster + :param location: The location for the unsupported VM sizes. This is different from cluster location. Required. :type location: str :return: An iterator like instance of ManagedVMSize @@ -6980,7 +7278,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -6993,7 +7294,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ManagedVMSize], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedVMSize], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7079,6 +7383,7 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo } _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 @@ -7100,7 +7405,7 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo 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.ManagedCluster, response.json()) @@ -7152,6 +7457,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 @@ -7178,7 +7484,7 @@ def _create_or_update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7392,6 +7698,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 @@ -7418,7 +7725,7 @@ def _update_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7618,6 +7925,7 @@ def _delete_initial(self, resource_group_name: str, cluster_name: str, **kwargs: } _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 @@ -7644,7 +7952,7 @@ def _delete_initial(self, resource_group_name: str, cluster_name: str, **kwargs: ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -7762,7 +8070,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -7775,7 +8086,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ManagedCluster], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedCluster], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7851,7 +8165,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -7864,7 +8181,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.ManagedCluster], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.ManagedCluster], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -7890,39 +8210,122 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) + @overload + def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationIdContent, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. -class ManagedAzResiliencyStatusOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_az_resiliency_status` attribute. - """ - - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace - def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _models.ManagedAzResiliencyStatus: - """Action to get Az Resiliency Status of all the Base resources constituting Service Fabric - Managed Clusters. + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def get_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :return: ManagedAzResiliencyStatus. The ManagedAzResiliencyStatus is compatible with - MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedAzResiliencyStatus + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or + JSON or IO[bytes] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ error_map: MutableMapping = { @@ -7933,16 +8336,26 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ManagedAzResiliencyStatus] = kwargs.pop("cls", None) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) - _request = build_managed_az_resiliency_status_get_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_get_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -7951,6 +8364,7 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo } _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 @@ -7972,51 +8386,43 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo 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.ManagedAzResiliencyStatus, response.json()) + deserialized = _deserialize(_models.FaultSimulation, response.json()) if cls: return cls(pipeline_response, deserialized, {}) # type: ignore return deserialized # type: ignore - -class ManagedApplyMaintenanceWindowOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. - - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_apply_maintenance_window` attribute. - """ - - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") - @distributed_trace - def post( # pylint: disable=inconsistent-return-statements + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": ["api_version", "subscription_id", "resource_group_name", "cluster_name", "accept"] + }, + api_versions_list=["2026-05-01-preview"], + ) + def list_fault_simulation( self, resource_group_name: str, cluster_name: str, **kwargs: Any - ) -> None: - """Action to Apply Maintenance window on the Service Fabric Managed Clusters, right now. Any - pending update will be applied. + ) -> ItemPaged["_models.FaultSimulation"]: + """Gets the list of recent fault simulations for the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :return: None - :rtype: None + :return: An iterator like instance of FaultSimulation + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.FaultSimulation]] = kwargs.pop("cls", None) + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -8025,16 +8431,128 @@ def post( # pylint: disable=inconsistent-return-statements } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + def prepare_request(next_link=None): + if not next_link: + + _request = build_managed_clusters_list_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.FaultSimulation], + deserialized.get("value", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def _start_fault_simulation_initial( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} - cls: ClsType[None] = kwargs.pop("cls", None) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_managed_apply_maintenance_window_post_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_start_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -8043,14 +8561,19 @@ def post( # pylint: disable=inconsistent-return-statements } _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = False + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200]: + if response.status_code not in [202]: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass map_error(status_code=response.status_code, response=response, error_map=error_map) error = _failsafe_deserialize( _models.ErrorResponse, @@ -8058,43 +8581,1459 @@ def post( # pylint: disable=inconsistent-return-statements ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, None, {}) # type: ignore + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + deserialized = response.iter_bytes() if _decompress else response.iter_raw() -class ManagedMaintenanceWindowStatusOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s - :attr:`managed_maintenance_window_status` attribute. - """ + return deserialized # type: ignore + + @overload + def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationContentWrapper, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def begin_start_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameters describing the fault simulation. Is one of the following types: + FaultSimulationContentWrapper, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + or JSON or IO[bytes] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._start_fault_simulation_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def _stop_fault_simulation_initial( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_managed_clusters_stop_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [202]: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: _models.FaultSimulationIdContent, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def begin_stop_fault_simulation( + self, + resource_group_name: str, + cluster_name: str, + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or + JSON or IO[bytes] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._stop_fault_simulation_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + +class ManagedAzResiliencyStatusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_az_resiliency_status` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _models.ManagedAzResiliencyStatus: + """Action to get Az Resiliency Status of all the Base resources constituting Service Fabric + Managed Clusters. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :return: ManagedAzResiliencyStatus. The ManagedAzResiliencyStatus is compatible with + MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedAzResiliencyStatus + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.ManagedAzResiliencyStatus] = kwargs.pop("cls", None) + + _request = build_managed_az_resiliency_status_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.ManagedAzResiliencyStatus, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + +class ManagedApplyMaintenanceWindowOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_apply_maintenance_window` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[_models.ApplyMaintenanceWindowRequest] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: ~azure.mgmt.servicefabricmanagedclusters.models.ApplyMaintenanceWindowRequest + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[JSON] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, + resource_group_name: str, + cluster_name: str, + body: Optional[IO[bytes]] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Default value is None. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def post( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + cluster_name: str, + body: Optional[Union[_models.ApplyMaintenanceWindowRequest, JSON, IO[bytes]]] = None, + **kwargs: Any + ) -> None: + """Action to Apply Maintenance window on the Service Fabric Managed Clusters. Any pending update + will be applied. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param body: The content of the action request. Is one of the following types: + ApplyMaintenanceWindowRequest, JSON, IO[bytes] Default value is None. + :type body: ~azure.mgmt.servicefabricmanagedclusters.models.ApplyMaintenanceWindowRequest or + JSON or IO[bytes] + :return: None + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + content_type = content_type if body else None + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" if body else None + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + if body is not None: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + else: + _content = None + + _request = build_managed_apply_maintenance_window_post_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + +class ManagedMaintenanceWindowStatusOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s + :attr:`managed_maintenance_window_status` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _models.ManagedMaintenanceWindowStatus: + """Action to get Maintenance Window Status of the Service Fabric Managed Clusters. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :return: ManagedMaintenanceWindowStatus. The ManagedMaintenanceWindowStatus is compatible with + MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedMaintenanceWindowStatus + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.ManagedMaintenanceWindowStatus] = kwargs.pop("cls", None) + + _request = build_managed_maintenance_window_status_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.ManagedMaintenanceWindowStatus, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + +class NodeTypesOperations: # pylint: disable=too-many-public-methods + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s + :attr:`node_types` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( + input_args.pop(0) if input_args else kwargs.pop("config") + ) + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def get(self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any) -> _models.NodeType: + """Get a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: NodeType. The NodeType is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + + _request = build_node_types_get_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(_models.NodeType, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + def _create_or_update_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeType, JSON, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_create_or_update_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeType, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def begin_create_or_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeType, JSON, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Create or update a Service Fabric node type of a given managed cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The node type resource. Is one of the following types: NodeType, JSON, + IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType or JSON or IO[bytes] + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.NodeType, response.json()) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.NodeType].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.NodeType]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _update_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + **kwargs: Any + ) -> Iterator[bytes]: + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_update_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + @overload + def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeTypeUpdateParameters, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with + MutableMapping + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace - def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _models.ManagedMaintenanceWindowStatus: - """Action to get Maintenance Window Status of the Service Fabric Managed Clusters. + def begin_update( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + **kwargs: Any + ) -> LROPoller[_models.NodeType]: + """Update the configuration of a node type of a given managed cluster, only updating tags or + capacity. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :return: ManagedMaintenanceWindowStatus. The ManagedMaintenanceWindowStatus is compatible with + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: The parameters to update the node type configuration. Is one of the + following types: NodeTypeUpdateParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters or + JSON or IO[bytes] + :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.ManagedMaintenanceWindowStatus + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) + + def get_long_running_output(pipeline_response): + response = pipeline_response.http_response + deserialized = _deserialize(_models.NodeType, response.json()) + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + return deserialized + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.NodeType].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.NodeType]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) + + def _delete_initial( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -8106,11 +10045,12 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo _headers = kwargs.pop("headers", {}) or {} _params = kwargs.pop("params", {}) or {} - cls: ClsType[_models.ManagedMaintenanceWindowStatus] = kwargs.pop("cls", None) + cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_managed_maintenance_window_status_get_request( + _request = build_node_types_delete_request( resource_group_name=resource_group_name, cluster_name=cluster_name, + node_type_name=node_type_name, subscription_id=self._config.subscription_id, api_version=self._config.api_version, headers=_headers, @@ -8121,19 +10061,19 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo } _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = kwargs.pop("stream", False) + _decompress = kwargs.pop("decompress", True) + _stream = True pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access _request, stream=_stream, **kwargs ) response = pipeline_response.http_response - if response.status_code not in [200]: - if _stream: - try: - response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass + if response.status_code not in [202, 204]: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass map_error(status_code=response.status_code, response=response, error_map=error_map) error = _failsafe_deserialize( _models.ErrorResponse, @@ -8141,51 +10081,102 @@ def get(self, resource_group_name: str, cluster_name: str, **kwargs: Any) -> _mo ) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if _stream: - deserialized = response.iter_bytes() - else: - deserialized = _deserialize(_models.ManagedMaintenanceWindowStatus, response.json()) + response_headers = {} + if response.status_code == 202: + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + + deserialized = response.iter_bytes() if _decompress else response.iter_raw() if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore return deserialized # type: ignore + @distributed_trace + def begin_delete( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> LROPoller[None]: + """Delete a Service Fabric node type of a given managed cluster. -class NodeTypesOperations: - """ - .. warning:: - **DO NOT** instantiate this class directly. + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} - Instead, you should access the following operations through - :class:`~azure.mgmt.servicefabricmanagedclusters.ServiceFabricManagedClustersManagementClient`'s - :attr:`node_types` attribute. - """ + cls: ClsType[None] = kwargs.pop("cls", None) + polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) + lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) + cont_token: Optional[str] = kwargs.pop("continuation_token", None) + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + cls=lambda x, y, z: x, + headers=_headers, + params=_params, + **kwargs + ) + raw_result.http_response.read() # type: ignore + kwargs.pop("error_map", None) - def __init__(self, *args, **kwargs) -> None: - input_args = list(args) - self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") - self._config: ServiceFabricManagedClustersManagementClientConfiguration = ( - input_args.pop(0) if input_args else kwargs.pop("config") - ) - self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") - self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + if cls: + return cls(pipeline_response, None, {}) # type: ignore + + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } + + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[None].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore @distributed_trace - def get(self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any) -> _models.NodeType: - """Get a Service Fabric node type of a given managed cluster. + def list_by_managed_clusters( + self, resource_group_name: str, cluster_name: str, **kwargs: Any + ) -> ItemPaged["_models.NodeType"]: + """Gets all Node types of the specified managed cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. :type resource_group_name: str :param cluster_name: The name of the cluster resource. Required. :type cluster_name: str - :param node_type_name: The name of the node type. Required. - :type node_type_name: str - :return: NodeType. The NodeType is compatible with MutableMapping - :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :return: An iterator like instance of NodeType + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] :raises ~azure.core.exceptions.HttpResponseError: """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.NodeType]] = kwargs.pop("cls", None) + error_map: MutableMapping = { 401: ClientAuthenticationError, 404: ResourceNotFoundError, @@ -8194,61 +10185,86 @@ def get(self, resource_group_name: str, cluster_name: str, node_type_name: str, } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} - _params = kwargs.pop("params", {}) or {} + def prepare_request(next_link=None): + if not next_link: - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + _request = build_node_types_list_by_managed_clusters_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - _request = build_node_types_get_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - node_type_name=node_type_name, - subscription_id=self._config.subscription_id, - api_version=self._config.api_version, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - _stream = kwargs.pop("stream", False) - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) + return _request - response = pipeline_response.http_response + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.NodeType], + deserialized.get("value", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, iter(list_of_elem) - if response.status_code not in [200]: - if _stream: - try: - response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + response = pipeline_response.http_response - if _stream: - deserialized = response.iter_bytes() - else: - deserialized = _deserialize(_models.NodeType, response.json()) + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore + return pipeline_response - return deserialized # type: ignore + return ItemPaged(get_next, extract_data) - def _create_or_update_initial( + def _deallocate_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeType, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -8272,7 +10288,7 @@ def _create_or_update_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_create_or_update_request( + _request = build_node_types_deallocate_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8288,6 +10304,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 @@ -8295,7 +10312,7 @@ def _create_or_update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 202]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -8308,13 +10325,12 @@ def _create_or_update_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -8322,17 +10338,18 @@ def _create_or_update_initial( return deserialized # type: ignore @overload - def begin_create_or_update( + def begin_deallocate( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeType, + parameters: _models.NodeTypeActionParameters, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> LROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8341,19 +10358,18 @@ def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType + :param parameters: parameters for deallocate action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_deallocate( self, resource_group_name: str, cluster_name: str, @@ -8362,8 +10378,9 @@ def begin_create_or_update( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> LROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8372,19 +10389,18 @@ def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. + :param parameters: parameters for deallocate action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_create_or_update( + def begin_deallocate( self, resource_group_name: str, cluster_name: str, @@ -8393,8 +10409,9 @@ def begin_create_or_update( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> LROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8403,27 +10420,27 @@ def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Required. + :param parameters: parameters for deallocate action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_create_or_update( + def begin_deallocate( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeType, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Create or update a Service Fabric node type of a given managed cluster. + ) -> LROPoller[None]: + """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a + shutdown on the VMs and release them from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8432,24 +10449,24 @@ def begin_create_or_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The node type resource. Is one of the following types: NodeType, JSON, - IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeType or JSON or IO[bytes] - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :param parameters: parameters for deallocate action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + JSON or IO[bytes] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._create_or_update_initial( + raw_result = self._deallocate_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8463,12 +10480,9 @@ def begin_create_or_update( raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): - response = pipeline_response.http_response - deserialized = _deserialize(_models.NodeType, response.json()) + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return cls(pipeline_response, None, {}) # type: ignore path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -8483,22 +10497,20 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.NodeType].from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller[_models.NodeType]( - self._client, raw_result, get_long_running_output, polling_method # type: ignore - ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _update_initial( + def _delete_node_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -8522,7 +10534,7 @@ def _update_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_update_request( + _request = build_node_types_delete_node_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8538,6 +10550,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 @@ -8545,7 +10558,7 @@ def _update_initial( response = pipeline_response.http_response - if response.status_code not in [200, 202]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -8558,13 +10571,12 @@ def _update_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -8572,18 +10584,18 @@ def _update_initial( return deserialized # type: ignore @overload - def begin_update( + def begin_delete_node( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeUpdateParameters, + parameters: _models.NodeTypeActionParameters, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> LROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8592,19 +10604,18 @@ def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters + :param parameters: parameters for delete action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_delete_node( self, resource_group_name: str, cluster_name: str, @@ -8613,9 +10624,9 @@ def begin_update( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> LROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8624,19 +10635,18 @@ def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. + :param parameters: parameters for delete action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_update( + def begin_delete_node( self, resource_group_name: str, cluster_name: str, @@ -8645,9 +10655,9 @@ def begin_update( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> LROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8656,28 +10666,27 @@ def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Required. + :param parameters: parameters for delete action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_update( + def begin_delete_node( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeUpdateParameters, JSON, IO[bytes]], + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any - ) -> LROPoller[_models.NodeType]: - """Update the configuration of a node type of a given managed cluster, only updating tags or - capacity. + ) -> LROPoller[None]: + """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete + on the VMs and removes the state from the cluster. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8686,25 +10695,24 @@ def begin_update( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: The parameters to update the node type configuration. Is one of the - following types: NodeTypeUpdateParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeUpdateParameters or + :param parameters: parameters for delete action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] - :return: An instance of LROPoller that returns NodeType. The NodeType is compatible with - MutableMapping - :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[_models.NodeType] = kwargs.pop("cls", None) + cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._update_initial( + raw_result = self._delete_node_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -8718,12 +10726,9 @@ def begin_update( raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): - response = pipeline_response.http_response - deserialized = _deserialize(_models.NodeType, response.json()) + def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements if cls: - return cls(pipeline_response, deserialized, {}) # type: ignore - return deserialized + return cls(pipeline_response, None, {}) # type: ignore path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -8738,18 +10743,21 @@ def get_long_running_output(pipeline_response): else: polling_method = polling if cont_token: - return LROPoller[_models.NodeType].from_continuation_token( + return LROPoller[None].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller[_models.NodeType]( - self._client, raw_result, get_long_running_output, polling_method # type: ignore - ) + return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _delete_initial( - self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + def _redeploy_initial( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { 401: ClientAuthenticationError, @@ -8759,17 +10767,27 @@ def _delete_initial( } error_map.update(kwargs.pop("error_map", {}) or {}) - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - _request = build_node_types_delete_request( + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_node_types_redeploy_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, subscription_id=self._config.subscription_id, + content_type=content_type, api_version=self._config.api_version, + content=_content, headers=_headers, params=_params, ) @@ -8778,6 +10796,7 @@ def _delete_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 @@ -8785,7 +10804,7 @@ def _delete_initial( response = pipeline_response.http_response - if response.status_code not in [202, 204]: + if response.status_code not in [202]: try: response.read() # Load the body in memory and close the socket except (StreamConsumedError, StreamClosedError): @@ -8798,24 +10817,122 @@ def _delete_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} - if response.status_code == 202: - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 - return deserialized # type: ignore + return deserialized # type: ignore + + @overload + def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: _models.NodeTypeActionParameters, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: JSON, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: IO[bytes], + *, + content_type: str = "application/json", + **kwargs: Any + ) -> LROPoller[None]: + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :param parameters: parameters for redeploy action. Required. + :type parameters: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An instance of LROPoller that returns None + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ @distributed_trace - def begin_delete( - self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + def begin_redeploy( + self, + resource_group_name: str, + cluster_name: str, + node_type_name: str, + parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + **kwargs: Any ) -> LROPoller[None]: - """Delete a Service Fabric node type of a given managed cluster. + """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut + down on the VMs, move them to a new node, and power them back on. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -8824,22 +10941,29 @@ def begin_delete( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str + :param parameters: parameters for redeploy action. Is one of the following types: + NodeTypeActionParameters, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + JSON or IO[bytes] :return: An instance of LROPoller that returns None :rtype: ~azure.core.polling.LROPoller[None] :raises ~azure.core.exceptions.HttpResponseError: """ - _headers = kwargs.pop("headers", {}) or {} + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) cls: ClsType[None] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._delete_initial( + raw_result = self._redeploy_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, + parameters=parameters, + content_type=content_type, cls=lambda x, y, z: x, headers=_headers, params=_params, @@ -8873,103 +10997,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - @distributed_trace - def list_by_managed_clusters( - self, resource_group_name: str, cluster_name: str, **kwargs: Any - ) -> ItemPaged["_models.NodeType"]: - """Gets all Node types of the specified managed cluster. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - Required. - :type resource_group_name: str - :param cluster_name: The name of the cluster resource. Required. - :type cluster_name: str - :return: An iterator like instance of NodeType - :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.NodeType] - :raises ~azure.core.exceptions.HttpResponseError: - """ - _headers = kwargs.pop("headers", {}) or {} - _params = kwargs.pop("params", {}) or {} - - cls: ClsType[List[_models.NodeType]] = kwargs.pop("cls", None) - - error_map: MutableMapping = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - def prepare_request(next_link=None): - if not next_link: - - _request = build_node_types_list_by_managed_clusters_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - subscription_id=self._config.subscription_id, - api_version=self._config.api_version, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url( - "self._config.base_url", self._config.base_url, "str", skip_quote=True - ), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - else: - # make call to next link with the client's api-version - _parsed_next_link = urllib.parse.urlparse(next_link) - _next_request_params = case_insensitive_dict( - { - key: [urllib.parse.quote(v) for v in value] - for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() - } - ) - _next_request_params["api-version"] = self._config.api_version - _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params - ) - path_format_arguments = { - "endpoint": self._serialize.url( - "self._config.base_url", self._config.base_url, "str", skip_quote=True - ), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - return _request - - def extract_data(pipeline_response): - deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.NodeType], deserialized.get("value", [])) - if cls: - list_of_elem = cls(list_of_elem) # type: ignore - return deserialized.get("nextLink") or None, iter(list_of_elem) - - def get_next(next_link=None): - _request = prepare_request(next_link) - - _stream = False - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, - ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged(get_next, extract_data) - - def _deallocate_initial( + def _reimage_initial( self, resource_group_name: str, cluster_name: str, @@ -8998,7 +11026,7 @@ def _deallocate_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_deallocate_request( + _request = build_node_types_reimage_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9014,6 +11042,7 @@ def _deallocate_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 @@ -9039,7 +11068,7 @@ def _deallocate_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -9047,7 +11076,7 @@ def _deallocate_initial( return deserialized # type: ignore @overload - def begin_deallocate( + def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -9057,8 +11086,8 @@ def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9067,7 +11096,7 @@ def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9078,7 +11107,7 @@ def begin_deallocate( """ @overload - def begin_deallocate( + def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -9088,8 +11117,8 @@ def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9098,7 +11127,7 @@ def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9109,7 +11138,7 @@ def begin_deallocate( """ @overload - def begin_deallocate( + def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -9119,8 +11148,8 @@ def begin_deallocate( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9129,7 +11158,7 @@ def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Required. + :param parameters: parameters for reimage action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -9140,7 +11169,7 @@ def begin_deallocate( """ @distributed_trace - def begin_deallocate( + def begin_reimage( self, resource_group_name: str, cluster_name: str, @@ -9148,8 +11177,8 @@ def begin_deallocate( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: - """Deallocates one or more nodes on the node type. It will disable the fabric nodes, trigger a - shutdown on the VMs and release them from the cluster. + """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a + reimage on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9158,7 +11187,7 @@ def begin_deallocate( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for deallocate action. Is one of the following types: + :param parameters: parameters for reimage action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -9175,7 +11204,7 @@ def begin_deallocate( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._deallocate_initial( + raw_result = self._reimage_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9214,7 +11243,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _delete_node_initial( + def _restart_initial( self, resource_group_name: str, cluster_name: str, @@ -9243,7 +11272,7 @@ def _delete_node_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_delete_node_request( + _request = build_node_types_restart_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9259,6 +11288,7 @@ def _delete_node_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 @@ -9284,7 +11314,7 @@ def _delete_node_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -9292,7 +11322,7 @@ def _delete_node_initial( return deserialized # type: ignore @overload - def begin_delete_node( + def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -9302,8 +11332,8 @@ def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9312,7 +11342,7 @@ def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9323,7 +11353,7 @@ def begin_delete_node( """ @overload - def begin_delete_node( + def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -9333,8 +11363,8 @@ def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9343,7 +11373,7 @@ def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9354,7 +11384,7 @@ def begin_delete_node( """ @overload - def begin_delete_node( + def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -9364,8 +11394,8 @@ def begin_delete_node( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9374,7 +11404,7 @@ def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Required. + :param parameters: parameters for restart action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -9385,7 +11415,7 @@ def begin_delete_node( """ @distributed_trace - def begin_delete_node( + def begin_restart( self, resource_group_name: str, cluster_name: str, @@ -9393,8 +11423,8 @@ def begin_delete_node( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: - """Deletes one or more nodes on the node type. It will disable the fabric nodes, trigger a delete - on the VMs and removes the state from the cluster. + """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a + restart on the VMs and activate the nodes back again. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9403,7 +11433,7 @@ def begin_delete_node( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for delete action. Is one of the following types: + :param parameters: parameters for restart action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -9420,7 +11450,7 @@ def begin_delete_node( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._delete_node_initial( + raw_result = self._restart_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9459,7 +11489,7 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _redeploy_initial( + def _start_initial( self, resource_group_name: str, cluster_name: str, @@ -9488,7 +11518,7 @@ def _redeploy_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_redeploy_request( + _request = build_node_types_start_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9504,6 +11534,7 @@ def _redeploy_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 @@ -9529,7 +11560,7 @@ def _redeploy_initial( ) response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -9537,7 +11568,7 @@ def _redeploy_initial( return deserialized # type: ignore @overload - def begin_redeploy( + def begin_start( self, resource_group_name: str, cluster_name: str, @@ -9547,8 +11578,8 @@ def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9557,7 +11588,7 @@ def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9568,7 +11599,7 @@ def begin_redeploy( """ @overload - def begin_redeploy( + def begin_start( self, resource_group_name: str, cluster_name: str, @@ -9578,8 +11609,8 @@ def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9588,7 +11619,7 @@ def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". @@ -9599,7 +11630,7 @@ def begin_redeploy( """ @overload - def begin_redeploy( + def begin_start( self, resource_group_name: str, cluster_name: str, @@ -9609,8 +11640,8 @@ def begin_redeploy( content_type: str = "application/json", **kwargs: Any ) -> LROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9619,7 +11650,7 @@ def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Required. + :param parameters: parameters for start action. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". @@ -9630,7 +11661,7 @@ def begin_redeploy( """ @distributed_trace - def begin_redeploy( + def begin_start( self, resource_group_name: str, cluster_name: str, @@ -9638,8 +11669,8 @@ def begin_redeploy( parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], **kwargs: Any ) -> LROPoller[None]: - """Redeploys one or more nodes on the node type. It will disable the fabric nodes, trigger a shut - down on the VMs, move them to a new node, and power them back on. + """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if + needed and activate them. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9648,7 +11679,7 @@ def begin_redeploy( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for redeploy action. Is one of the following types: + :param parameters: parameters for start action. Is one of the following types: NodeTypeActionParameters, JSON, IO[bytes] Required. :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or JSON or IO[bytes] @@ -9665,7 +11696,7 @@ def begin_redeploy( lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._redeploy_initial( + raw_result = self._start_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9704,12 +11735,26 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- ) return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - def _reimage_initial( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def _start_fault_simulation_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -9733,7 +11778,7 @@ def _reimage_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_reimage_request( + _request = build_node_types_start_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9749,6 +11794,7 @@ def _reimage_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 @@ -9769,12 +11815,12 @@ def _reimage_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -9782,18 +11828,17 @@ def _reimage_initial( return deserialized # type: ignore @overload - def begin_reimage( + def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationContentWrapper, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9802,18 +11847,20 @@ def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameters describing the fault simulation. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_reimage( + def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -9822,9 +11869,8 @@ def begin_reimage( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9833,18 +11879,20 @@ def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. + :param parameters: parameters describing the fault simulation. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_reimage( + def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -9853,9 +11901,8 @@ def begin_reimage( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9864,27 +11911,42 @@ def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Required. + :param parameters: parameters describing the fault simulation. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_reimage( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def begin_start_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationContentWrapper, JSON, IO[bytes]], **kwargs: Any - ) -> LROPoller[None]: - """Reimages one or more nodes on the node type. It will disable the fabric nodes, trigger a - reimage on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Starts a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -9893,24 +11955,26 @@ def begin_reimage( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for reimage action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or - JSON or IO[bytes] - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :param parameters: parameters describing the fault simulation. Is one of the following types: + FaultSimulationContentWrapper, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationContentWrapper + or JSON or IO[bytes] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._reimage_initial( + raw_result = self._start_fault_simulation_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9924,9 +11988,18 @@ def begin_reimage( raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) + + deserialized = _deserialize(_models.FaultSimulation, response.json()) if cls: - return cls(pipeline_response, None, {}) # type: ignore + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), @@ -9941,20 +12014,36 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent- else: polling_method = polling if cont_token: - return LROPoller[None].from_continuation_token( + return LROPoller[_models.FaultSimulation].from_continuation_token( polling_method=polling_method, continuation_token=cont_token, client=self._client, deserialization_callback=get_long_running_output, ) - return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + return LROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) - def _restart_initial( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def _stop_fault_simulation_initial( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any ) -> Iterator[bytes]: error_map: MutableMapping = { @@ -9978,7 +12067,7 @@ def _restart_initial( else: _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - _request = build_node_types_restart_request( + _request = build_node_types_stop_fault_simulation_request( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -9994,6 +12083,7 @@ def _restart_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 @@ -10014,12 +12104,12 @@ def _restart_initial( raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) response_headers = {} + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) response_headers["Azure-AsyncOperation"] = self._deserialize( "str", response.headers.get("Azure-AsyncOperation") ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) - 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 @@ -10027,18 +12117,17 @@ def _restart_initial( return deserialized # type: ignore @overload - def begin_restart( + def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationIdContent, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10047,18 +12136,20 @@ def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_restart( + def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -10067,9 +12158,8 @@ def begin_restart( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10078,18 +12168,20 @@ def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_restart( + def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -10098,9 +12190,8 @@ def begin_restart( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10109,27 +12200,42 @@ def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_restart( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def begin_stop_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any - ) -> LROPoller[None]: - """Restarts one or more nodes on the node type. It will disable the fabric nodes, trigger a - restart on the VMs and activate the nodes back again. + ) -> LROPoller[_models.FaultSimulation]: + """Stops a fault simulation on the node type. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10138,24 +12244,26 @@ def begin_restart( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for restart action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or JSON or IO[bytes] - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: An instance of LROPoller that returns FaultSimulation. The FaultSimulation is + compatible with MutableMapping + :rtype: + ~azure.core.polling.LROPoller[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] :raises ~azure.core.exceptions.HttpResponseError: """ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) cont_token: Optional[str] = kwargs.pop("continuation_token", None) if cont_token is None: - raw_result = self._restart_initial( + raw_result = self._stop_fault_simulation_initial( resource_group_name=resource_group_name, cluster_name=cluster_name, node_type_name=node_type_name, @@ -10169,121 +12277,54 @@ def begin_restart( raw_result.http_response.read() # type: ignore kwargs.pop("error_map", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) # type: ignore - - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - ) - elif polling is False: - polling_method = cast(PollingMethod, NoPolling()) - else: - polling_method = polling - if cont_token: - return LROPoller[None].from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output, - ) - return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore - - def _start_initial( - self, - resource_group_name: str, - cluster_name: str, - node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], - **kwargs: Any - ) -> Iterator[bytes]: - error_map: MutableMapping = { - 401: ClientAuthenticationError, - 404: ResourceNotFoundError, - 409: ResourceExistsError, - 304: ResourceNotModifiedError, - } - error_map.update(kwargs.pop("error_map", {}) or {}) - - _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) - _params = kwargs.pop("params", {}) or {} - - content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None) - - content_type = content_type or "application/json" - _content = None - if isinstance(parameters, (IOBase, bytes)): - _content = parameters - else: - _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore - - _request = build_node_types_start_request( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - node_type_name=node_type_name, - subscription_id=self._config.subscription_id, - content_type=content_type, - api_version=self._config.api_version, - content=_content, - headers=_headers, - params=_params, - ) - path_format_arguments = { - "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), - } - _request.url = self._client.format_url(_request.url, **path_format_arguments) - - _stream = True - pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access - _request, stream=_stream, **kwargs - ) - - response = pipeline_response.http_response - - if response.status_code not in [202]: - try: - response.read() # Load the body in memory and close the socket - except (StreamConsumedError, StreamClosedError): - pass - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = _failsafe_deserialize( - _models.ErrorResponse, - response, - ) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - response_headers = {} - response_headers["Azure-AsyncOperation"] = self._deserialize( - "str", response.headers.get("Azure-AsyncOperation") - ) - response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + def get_long_running_output(pipeline_response): + response_headers = {} + response = pipeline_response.http_response + response_headers["Location"] = self._deserialize("str", response.headers.get("Location")) + response_headers["Azure-AsyncOperation"] = self._deserialize( + "str", response.headers.get("Azure-AsyncOperation") + ) - deserialized = response.iter_bytes() + deserialized = _deserialize(_models.FaultSimulation, response.json()) + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + return deserialized - if cls: - return cls(pipeline_response, deserialized, response_headers) # type: ignore + path_format_arguments = { + "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), + } - return deserialized # type: ignore + if polling is True: + polling_method: PollingMethod = cast( + PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + ) + elif polling is False: + polling_method = cast(PollingMethod, NoPolling()) + else: + polling_method = polling + if cont_token: + return LROPoller[_models.FaultSimulation].from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output, + ) + return LROPoller[_models.FaultSimulation]( + self._client, raw_result, get_long_running_output, polling_method # type: ignore + ) @overload - def begin_start( + def get_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: _models.NodeTypeActionParameters, + parameters: _models.FaultSimulationIdContent, *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10292,18 +12333,18 @@ def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters + :param parameters: parameter with fault simulation id. Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_start( + def get_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -10312,9 +12353,8 @@ def begin_start( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10323,18 +12363,18 @@ def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: JSON :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @overload - def begin_start( + def get_fault_simulation( self, resource_group_name: str, cluster_name: str, @@ -10343,9 +12383,8 @@ def begin_start( *, content_type: str = "application/json", **kwargs: Any - ) -> LROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10354,27 +12393,41 @@ def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Required. + :param parameters: parameter with fault simulation id. Required. :type parameters: IO[bytes] :keyword content_type: Body Parameter content-type. Content type parameter for binary body. Default value is "application/json". :paramtype content_type: str - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ @distributed_trace - def begin_start( + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "content_type", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def get_fault_simulation( self, resource_group_name: str, cluster_name: str, node_type_name: str, - parameters: Union[_models.NodeTypeActionParameters, JSON, IO[bytes]], + parameters: Union[_models.FaultSimulationIdContent, JSON, IO[bytes]], **kwargs: Any - ) -> LROPoller[None]: - """Starts one or more nodes on the node type. It will trigger an allocation of the fabric node if - needed and activate them. + ) -> _models.FaultSimulation: + """Gets a fault simulation by the simulationId. :param resource_group_name: The name of the resource group. The name is case insensitive. Required. @@ -10383,61 +12436,201 @@ def begin_start( :type cluster_name: str :param node_type_name: The name of the node type. Required. :type node_type_name: str - :param parameters: parameters for start action. Is one of the following types: - NodeTypeActionParameters, JSON, IO[bytes] Required. - :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.NodeTypeActionParameters or + :param parameters: parameter with fault simulation id. Is one of the following types: + FaultSimulationIdContent, JSON, IO[bytes] Required. + :type parameters: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulationIdContent or JSON or IO[bytes] - :return: An instance of LROPoller that returns None - :rtype: ~azure.core.polling.LROPoller[None] + :return: FaultSimulation. The FaultSimulation is compatible with MutableMapping + :rtype: ~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation :raises ~azure.core.exceptions.HttpResponseError: """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) _params = kwargs.pop("params", {}) or {} content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) - cls: ClsType[None] = kwargs.pop("cls", None) - polling: Union[bool, PollingMethod] = kwargs.pop("polling", True) - lro_delay = kwargs.pop("polling_interval", self._config.polling_interval) - cont_token: Optional[str] = kwargs.pop("continuation_token", None) - if cont_token is None: - raw_result = self._start_initial( - resource_group_name=resource_group_name, - cluster_name=cluster_name, - node_type_name=node_type_name, - parameters=parameters, - content_type=content_type, - cls=lambda x, y, z: x, - headers=_headers, - params=_params, - **kwargs - ) - raw_result.http_response.read() # type: ignore - kwargs.pop("error_map", None) + cls: ClsType[_models.FaultSimulation] = kwargs.pop("cls", None) - def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements - if cls: - return cls(pipeline_response, None, {}) # type: ignore + content_type = content_type or "application/json" + _content = None + if isinstance(parameters, (IOBase, bytes)): + _content = parameters + else: + _content = json.dumps(parameters, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + _request = build_node_types_get_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + content_type=content_type, + api_version=self._config.api_version, + content=_content, + headers=_headers, + params=_params, + ) path_format_arguments = { "endpoint": self._serialize.url("self._config.base_url", self._config.base_url, "str", skip_quote=True), } + _request.url = self._client.format_url(_request.url, **path_format_arguments) - if polling is True: - polling_method: PollingMethod = cast( - PollingMethod, ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) + _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 + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, ) - elif polling is False: - polling_method = cast(PollingMethod, NoPolling()) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() else: - polling_method = polling - if cont_token: - return LROPoller[None].from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output, + deserialized = _deserialize(_models.FaultSimulation, response.json()) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + @distributed_trace + @api_version_validation( + method_added_on="2026-05-01-preview", + params_added_on={ + "2026-05-01-preview": [ + "api_version", + "subscription_id", + "resource_group_name", + "cluster_name", + "node_type_name", + "accept", + ] + }, + api_versions_list=["2026-05-01-preview"], + ) + def list_fault_simulation( + self, resource_group_name: str, cluster_name: str, node_type_name: str, **kwargs: Any + ) -> ItemPaged["_models.FaultSimulation"]: + """Gets the list of recent fault simulations for the node type. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param cluster_name: The name of the cluster resource. Required. + :type cluster_name: str + :param node_type_name: The name of the node type. Required. + :type node_type_name: str + :return: An iterator like instance of FaultSimulation + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.servicefabricmanagedclusters.models.FaultSimulation] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = kwargs.pop("headers", {}) or {} + _params = kwargs.pop("params", {}) or {} + + cls: ClsType[List[_models.FaultSimulation]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + _request = build_node_types_list_fault_simulation_request( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + node_type_name=node_type_name, + subscription_id=self._config.subscription_id, + api_version=self._config.api_version, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + _request = HttpRequest( + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.base_url", self._config.base_url, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + List[_models.FaultSimulation], + deserialized.get("value", []), ) - return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("nextLink") or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = _failsafe_deserialize( + _models.ErrorResponse, + response, + ) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) class NodeTypeSkusOperations: @@ -10520,7 +12713,10 @@ def prepare_request(next_link=None): ) _next_request_params["api-version"] = self._config.api_version _request = HttpRequest( - "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params + "GET", + urllib.parse.urljoin(next_link, _parsed_next_link.path), + headers=_headers, + params=_next_request_params, ) path_format_arguments = { "endpoint": self._serialize.url( @@ -10533,7 +12729,10 @@ def prepare_request(next_link=None): def extract_data(pipeline_response): deserialized = pipeline_response.http_response.json() - list_of_elem = _deserialize(List[_models.NodeTypeAvailableSku], deserialized.get("value", [])) + list_of_elem = _deserialize( + List[_models.NodeTypeAvailableSku], + deserialized.get("value", []), + ) if cls: list_of_elem = cls(list_of_elem) # type: ignore return deserialized.get("nextLink") or None, iter(list_of_elem) @@ -10704,6 +12903,7 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.LongRu } _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 @@ -10725,7 +12925,7 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.LongRu 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.LongRunningOperationResult, response.json()) diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_patch.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_patch.py index 87676c65a8f0..ea765788358a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_patch.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/azure/mgmt/servicefabricmanagedclusters/operations/_patch.py @@ -8,7 +8,6 @@ Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize """ - __all__: list[str] = [] # Add all objects you want publicly available to users at this package level diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_fetch_health_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_fetch_health_example.py index bb4d86c84be7..b2b89a51c96c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_fetch_health_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_fetch_health_example.py @@ -44,6 +44,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionFetchHealth_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionFetchHealth_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_get_upgrade_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_get_upgrade_example.py index 43e4c550c90b..56c4b03b251d 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_get_upgrade_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_get_upgrade_example.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionGetUpgrade_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionGetUpgrade_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_restart_deployed_code_package_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_restart_deployed_code_package_example.py index fd22fd79ac26..b5ebd97c5ca3 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_restart_deployed_code_package_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_restart_deployed_code_package_example.py @@ -44,6 +44,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionRestartDeployedCodePackage_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionRestartDeployedCodePackage_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_resume_upgrade_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_resume_upgrade_example.py index 54daa0d02c70..feaa95546f08 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_resume_upgrade_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_resume_upgrade_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionResumeUpgrade_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionResumeUpgrade_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_start_rollback_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_start_rollback_example.py index eeabc90a833a..cb5d5ed95d49 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_start_rollback_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_start_rollback_example.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionStartRollback_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionStartRollback_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_update_upgrade_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_update_upgrade_example.py index 85dc8228d4f5..539a5f9145be 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_update_upgrade_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_action_update_upgrade_example.py @@ -67,6 +67,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationActionUpdateUpgrade_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationActionUpdateUpgrade_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_delete_operation_example.py index 4adf56ae4513..d50673510177 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_delete_operation_example.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_get_operation_example.py index 8e39311a25d3..19fbec3e364a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_get_operation_example.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_list_operation_example.py index 42d3b0583341..c9517fd2961a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_list_operation_example.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ApplicationListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_patch_operation_example.py index 8be1a299fdb0..8d790c443b2c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_patch_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationPatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationPatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_max.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_max.py index a9ba0ebbd27c..98bae7a5aaa5 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_max.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_max.py @@ -78,6 +78,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationPutOperation_example_max.json +# x-ms-original-file: 2026-05-01-preview/ApplicationPutOperation_example_max.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_min.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_min.py index e7c224183db9..30fdd6f3a4e3 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_min.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_put_operation_example_min.py @@ -45,6 +45,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationPutOperation_example_min.json +# x-ms-original-file: 2026-05-01-preview/ApplicationPutOperation_example_min.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_delete_operation_example.py index d67238411045..e1e0e99b8695 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_delete_operation_example.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationTypeNameDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeNameDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_get_operation_example.py index 9ec30ea74730..d658ca0b6d71 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_get_operation_example.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeNameGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeNameGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_list_operation_example.py index 1e2e498a5d05..6609ec302fcd 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_list_operation_example.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ApplicationTypeNameListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeNameListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_patch_operation_example.py index 0136b566b234..feea5b8e820b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_patch_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeNamePatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeNamePatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_put_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_put_operation_example.py index f4f1a46658ea..be3ca2ff105a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_put_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_name_put_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeNamePutOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeNamePutOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_delete_operation_example.py index 26e9d015a657..2e6c2eda0ab8 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_delete_operation_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ApplicationTypeVersionDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeVersionDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_get_operation_example.py index b25663e8fa26..db0c84a44e10 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_get_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeVersionGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeVersionGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_list_operation_example.py index 4e8e39154755..e6f1cb62c165 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_list_operation_example.py @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ApplicationTypeVersionListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeVersionListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_patch_operation_example.py index 62c6a5ca300c..f6804dda54bb 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_patch_operation_example.py @@ -40,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeVersionPatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeVersionPatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_put_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_put_operation_example.py index 6e270ed5614c..c7778d24edf0 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_put_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/application_type_version_put_operation_example.py @@ -40,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ApplicationTypeVersionPutOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ApplicationTypeVersionPutOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/deallocate_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/deallocate_nodes_example.py index b2258528e93d..8c837cddce34 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/deallocate_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/deallocate_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/DeallocateNodes_example.json +# x-ms-original-file: 2026-05-01-preview/DeallocateNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/delete_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/delete_nodes_example.py index 107c133a3a2f..d5ea54f2ea0b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/delete_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/delete_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/DeleteNodes_example.json +# x-ms-original-file: 2026-05-01-preview/DeleteNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_apply_maintenance_window_post_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_apply_maintenance_window_post_example.py index 06ffdf36e9d8..a48e02bae6b3 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_apply_maintenance_window_post_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_apply_maintenance_window_post_example.py @@ -36,6 +36,6 @@ def main(): ) -# x-ms-original-file: 2026-02-01/ManagedApplyMaintenanceWindowPost_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedApplyMaintenanceWindowPost_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_az_resiliency_status_get_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_az_resiliency_status_get_example.py index 96ac460cba70..0a9969f92070 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_az_resiliency_status_get_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_az_resiliency_status_get_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/managedAzResiliencyStatusGet_example.json +# x-ms-original-file: 2026-05-01-preview/managedAzResiliencyStatusGet_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_delete_operation_example.py index 5ba4abd913c8..665e1d20981c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_delete_operation_example.py @@ -36,6 +36,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ManagedClusterDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_fault_simulation_example.py new file mode 100644 index 000000000000..54265225fd7f --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_fault_simulation_example.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python managed_cluster_get_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.managed_clusters.get_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + parameters={"simulationId": "aec13cc2-1d39-4ba6-a1a8-2fc35b00643c"}, + ) + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/ManagedClusterGetFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_operation_example.py index 68341fd46d82..7ed78a1aa40d 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_get_operation_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_resource_group_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_resource_group_operation_example.py index 5b67affd16e8..5f004e3e9cb1 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_resource_group_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_resource_group_operation_example.py @@ -37,6 +37,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ManagedClusterListByResourceGroupOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterListByResourceGroupOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_subscription_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_subscription_operation_example.py index 1a508a980a0a..5fee68230e3d 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_subscription_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_by_subscription_operation_example.py @@ -35,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ManagedClusterListBySubscriptionOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterListBySubscriptionOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_fault_simulation_example.py new file mode 100644 index 000000000000..ead1bf2bae23 --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_list_fault_simulation_example.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python managed_cluster_list_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.managed_clusters.list_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + ) + for item in response: + print(item) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/ManagedClusterListFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_patch_operation_example.py index 77495731b6c0..fda7833dce67 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_patch_operation_example.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterPatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterPatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_max.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_max.py index 185aa9141577..15a8376da0be 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_max.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_max.py @@ -154,6 +154,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterPutOperation_example_max.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterPutOperation_example_max.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_min.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_min.py index d52e1d43faab..4de2c0a07753 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_min.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_put_operation_example_min.py @@ -51,6 +51,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterPutOperation_example_min.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterPutOperation_example_min.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_start_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_start_fault_simulation_example.py new file mode 100644 index 000000000000..9cceb2053bb5 --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_start_fault_simulation_example.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python managed_cluster_start_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.managed_clusters.begin_start_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + parameters={"parameters": {"faultKind": "Zone", "zones": ["2"]}}, + ).result() + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/ManagedClusterStartFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_stop_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_stop_fault_simulation_example.py new file mode 100644 index 000000000000..9160ce5c6f92 --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_stop_fault_simulation_example.py @@ -0,0 +1,43 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python managed_cluster_stop_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.managed_clusters.begin_stop_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + parameters={"simulationId": "1bb61ba9-8a41-4d73-b5f0-7fc93b1edfe3"}, + ).result() + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/ManagedClusterStopFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_by_environment_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_by_environment_example.py index 0a4df2ab39c6..445bec978ca4 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_by_environment_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_by_environment_example.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterVersionGetByEnvironment_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterVersionGetByEnvironment_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_example.py index 3c8ac2672032..e9ca5d39924a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_get_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterVersionGet_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterVersionGet_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_by_environment.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_by_environment.py index 95a8f39af8f3..c002ab9de6e6 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_by_environment.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_by_environment.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterVersionListByEnvironment.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterVersionListByEnvironment.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_example.py index dd2a8a43ec8a..b735a6e0497a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_cluster_version_list_example.py @@ -36,6 +36,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedClusterVersionList_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedClusterVersionList_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_maintenance_window_status_get_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_maintenance_window_status_get_example.py index bfe98255bfff..b407e18d47e1 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_maintenance_window_status_get_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_maintenance_window_status_get_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ManagedMaintenanceWindowStatusGet_example.json +# x-ms-original-file: 2026-05-01-preview/ManagedMaintenanceWindowStatusGet_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_get_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_get_example.py index 7fdcfcb8eedf..8ee98e571fa3 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_get_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_get_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/managedUnsupportedVMSizesGet_example.json +# x-ms-original-file: 2026-05-01-preview/managedUnsupportedVMSizesGet_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_list_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_list_example.py index 7536ec1840ae..745ccfa78ccb 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_list_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/managed_unsupported_vm_sizes_list_example.py @@ -37,6 +37,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/managedUnsupportedVMSizesList_example.json +# x-ms-original-file: 2026-05-01-preview/managedUnsupportedVMSizesList_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_delete_operation_example.py index 3eddeeb247e6..791f77a33287 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_delete_operation_example.py @@ -37,6 +37,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/NodeTypeDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypeDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_fault_simulation_example.py new file mode 100644 index 000000000000..f880657dcc28 --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_fault_simulation_example.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python node_type_get_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.node_types.get_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + node_type_name="BE", + parameters={"simulationId": "aec13cc2-1d39-4ba6-a1a8-2fc35b00643c"}, + ) + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/NodeTypeGetFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_operation_example.py index 7a090051f07c..8692ff0a2196 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_get_operation_example.py @@ -38,6 +38,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypeGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypeGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_fault_simulation_example.py new file mode 100644 index 000000000000..3ff68c5a0b4b --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_fault_simulation_example.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python node_type_list_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.node_types.list_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + node_type_name="BE", + ) + for item in response: + print(item) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/NodeTypeListFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_operation_example.py index 289c6a0e089f..89c50ecad472 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_list_operation_example.py @@ -38,6 +38,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/NodeTypeListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypeListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_auto_scale_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_auto_scale_example.py index ab9d1261c4e6..323158f59893 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_auto_scale_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_auto_scale_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePatchOperationAutoScale_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePatchOperationAutoScale_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_example.py index 089d44b5a0f8..67cd5fbb4d14 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_patch_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_auto_scale_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_auto_scale_example.py index 824e079ce92f..e740a829281c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_auto_scale_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_auto_scale_example.py @@ -87,6 +87,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationAutoScale_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationAutoScale_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_image_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_image_example.py index 1c912e6fa559..90700054fa61 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_image_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_image_example.py @@ -48,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationCustomImage_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationCustomImage_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_shared_galleries_image_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_shared_galleries_image_example.py index f5960bb62e83..19d84ffe7f49 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_shared_galleries_image_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_custom_shared_galleries_image_example.py @@ -48,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationCustomSharedGalleriesImage_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationCustomSharedGalleriesImage_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_dedicated_host_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_dedicated_host_example.py index f9aafb2e0f9c..0f149c0f7f12 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_dedicated_host_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_dedicated_host_example.py @@ -56,6 +56,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationDedicatedHost_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationDedicatedHost_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_max.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_max.py index 76182468724b..d095b5ec124d 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_max.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_max.py @@ -106,6 +106,14 @@ def main(): "multiplePlacementGroups": True, "natGatewayId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resRg/providers/Microsoft.Network/natGateways/myNatGateway", "placementProperties": {"HasSSD": "true", "NodeColor": "green", "SomeProperty": "5"}, + "proxyAgentSettings": { + "addProxyAgentExtension": True, + "enabled": True, + "imds": {"inVMAccessControlProfileReferenceId": "someReferenceId", "mode": "Audit"}, + "keyIncarnationId": 17, + "wireServer": {"inVMAccessControlProfileReferenceId": "someReferenceId", "mode": "Audit"}, + }, + "scaleInPolicy": {"mode": "Default"}, "secureBootEnabled": True, "securityEncryptionType": "DiskWithVMGuestState", "securityType": "ConfidentialVM", @@ -171,6 +179,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperation_example_max.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperation_example_max.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_min.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_min.py index 17d600488e1f..a36a17fcd57f 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_min.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_example_min.py @@ -50,6 +50,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperation_example_min.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperation_example_min.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_stateless_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_stateless_example.py index 430f9e0deb43..75b9e81ca1aa 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_stateless_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_stateless_example.py @@ -65,6 +65,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationStateless_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationStateless_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_vm_image_plan_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_vm_image_plan_example.py index 572da13349aa..01abc1d6f076 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_vm_image_plan_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_put_operation_vm_image_plan_example.py @@ -55,6 +55,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/NodeTypePutOperationVmImagePlan_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypePutOperationVmImagePlan_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_skus_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_skus_list_operation_example.py index c41862968e26..26c33e2eb25b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_skus_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_skus_list_operation_example.py @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/NodeTypeSkusListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/NodeTypeSkusListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_start_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_start_fault_simulation_example.py new file mode 100644 index 000000000000..ab61896571fc --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_start_fault_simulation_example.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python node_type_start_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.node_types.begin_start_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + node_type_name="BE", + parameters={"parameters": {"faultKind": "Zone", "zones": ["2"]}}, + ).result() + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/NodeTypeStartFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_stop_fault_simulation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_stop_fault_simulation_example.py new file mode 100644 index 000000000000..d87aafda9c43 --- /dev/null +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/node_type_stop_fault_simulation_example.py @@ -0,0 +1,44 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential + +from azure.mgmt.servicefabricmanagedclusters import ServiceFabricManagedClustersManagementClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-servicefabricmanagedclusters +# USAGE + python node_type_stop_fault_simulation_example.py + + Before run the sample, please set the values of the client ID, tenant ID and client secret + of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, + AZURE_CLIENT_SECRET. For more info about how to get the value, please see: + https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal +""" + + +def main(): + client = ServiceFabricManagedClustersManagementClient( + credential=DefaultAzureCredential(), + subscription_id="SUBSCRIPTION_ID", + ) + + response = client.node_types.begin_stop_fault_simulation( + resource_group_name="resRg", + cluster_name="myCluster", + node_type_name="BE", + parameters={"simulationId": "1bb61ba9-8a41-4d73-b5f0-7fc93b1edfe3"}, + ).result() + print(response) + + +# x-ms-original-file: 2026-05-01-preview/faultSimulation/NodeTypeStopFaultSimulation_example.json +if __name__ == "__main__": + main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_results_get_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_results_get_example.py index d68233392482..ea92b600d9ef 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_results_get_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_results_get_example.py @@ -36,6 +36,6 @@ def main(): ) -# x-ms-original-file: 2026-02-01/OperationResultsGet_example.json +# x-ms-original-file: 2026-05-01-preview/OperationResultsGet_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_failed_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_failed_example.py index c5334a4ff9c3..58b063fe2d0b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_failed_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_failed_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/OperationStatusFailed_example.json +# x-ms-original-file: 2026-05-01-preview/OperationStatusFailed_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_succeeded_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_succeeded_example.py index 93a410cd80c2..883003a5e3cf 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_succeeded_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operation_status_succeeded_example.py @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/OperationStatusSucceeded_example.json +# x-ms-original-file: 2026-05-01-preview/OperationStatusSucceeded_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operations_list_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operations_list_example.py index 0309c8b72def..2b682740fad4 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operations_list_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/operations_list_example.py @@ -35,6 +35,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/OperationsList_example.json +# x-ms-original-file: 2026-05-01-preview/OperationsList_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_example.py index f48c8b232799..45757386428e 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/RedeployNodes_example.json +# x-ms-original-file: 2026-05-01-preview/RedeployNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_ud_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_ud_example.py index 33ce2ce384a1..87802695e40a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_ud_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/redeploy_nodes_ud_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/RedeployNodes_UD_example.json +# x-ms-original-file: 2026-05-01-preview/RedeployNodes_UD_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_example.py index 2396c21c4359..40031a1a1821 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ReimageNodes_example.json +# x-ms-original-file: 2026-05-01-preview/ReimageNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_ud_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_ud_example.py index 0b03be0852c0..c5014d146959 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_ud_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/reimage_nodes_ud_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ReimageNodes_UD_example.json +# x-ms-original-file: 2026-05-01-preview/ReimageNodes_UD_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/restart_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/restart_nodes_example.py index 230dab136e86..0c5daeb08f5c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/restart_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/restart_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/RestartNodes_example.json +# x-ms-original-file: 2026-05-01-preview/RestartNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_action_restart_replica_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_action_restart_replica_example.py index 4e4426d8ccf1..7b3cd080173b 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_action_restart_replica_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_action_restart_replica_example.py @@ -45,6 +45,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ServiceActionRestartReplica_example.json +# x-ms-original-file: 2026-05-01-preview/ServiceActionRestartReplica_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_delete_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_delete_operation_example.py index e0dd2684b442..6ad00c00998a 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_delete_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_delete_operation_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/ServiceDeleteOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ServiceDeleteOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_get_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_get_operation_example.py index ad11c2758ce9..720821050e4c 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_get_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_get_operation_example.py @@ -39,6 +39,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ServiceGetOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ServiceGetOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_list_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_list_operation_example.py index 865135b67855..6d9804881a04 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_list_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_list_operation_example.py @@ -39,6 +39,6 @@ def main(): print(item) -# x-ms-original-file: 2026-02-01/ServiceListOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ServiceListOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_patch_operation_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_patch_operation_example.py index 14aadd81a3a5..51c45bed0dcb 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_patch_operation_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_patch_operation_example.py @@ -40,6 +40,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ServicePatchOperation_example.json +# x-ms-original-file: 2026-05-01-preview/ServicePatchOperation_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_max.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_max.py index 654c95a706ef..381d859ddefb 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_max.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_max.py @@ -81,6 +81,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ServicePutOperation_example_max.json +# x-ms-original-file: 2026-05-01-preview/ServicePutOperation_example_max.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_min.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_min.py index b643d77e61b3..b2aff14156e4 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_min.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/service_put_operation_example_min.py @@ -48,6 +48,6 @@ def main(): print(response) -# x-ms-original-file: 2026-02-01/ServicePutOperation_example_min.json +# x-ms-original-file: 2026-05-01-preview/ServicePutOperation_example_min.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/start_nodes_example.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/start_nodes_example.py index 98d44f0f0bc8..887daf282cbd 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/start_nodes_example.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_samples/start_nodes_example.py @@ -38,6 +38,6 @@ def main(): ).result() -# x-ms-original-file: 2026-02-01/StartNodes_example.json +# x-ms-original-file: 2026-05-01-preview/StartNodes_example.json if __name__ == "__main__": main() diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations.py index 5068e9564bb9..ba339d7c416d 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations.py @@ -198,3 +198,50 @@ def test_managed_clusters_list_by_subscription(self, resource_group): result = [r for r in response] # please add some check logic here by yourself # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_managed_clusters_get_fault_simulation(self, resource_group): + response = self.client.managed_clusters.get_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"simulationId": "str"}, + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_managed_clusters_list_fault_simulation(self, resource_group): + response = self.client.managed_clusters.list_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_managed_clusters_begin_start_fault_simulation(self, resource_group): + response = self.client.managed_clusters.begin_start_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"parameters": "fault_simulation_content"}, + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_managed_clusters_begin_stop_fault_simulation(self, resource_group): + response = self.client.managed_clusters.begin_stop_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"simulationId": "str"}, + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations_async.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations_async.py index 9a7aa548dbe3..8dfc61fcf4f0 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations_async.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_managed_clusters_operations_async.py @@ -207,3 +207,54 @@ async def test_managed_clusters_list_by_subscription(self, resource_group): result = [r async for r in response] # please add some check logic here by yourself # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_managed_clusters_get_fault_simulation(self, resource_group): + response = await self.client.managed_clusters.get_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"simulationId": "str"}, + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_managed_clusters_list_fault_simulation(self, resource_group): + response = self.client.managed_clusters.list_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_managed_clusters_begin_start_fault_simulation(self, resource_group): + response = await ( + await self.client.managed_clusters.begin_start_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"parameters": "fault_simulation_content"}, + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_managed_clusters_begin_stop_fault_simulation(self, resource_group): + response = await ( + await self.client.managed_clusters.begin_stop_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + parameters={"simulationId": "str"}, + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations.py index 5fa3a0977f24..0a69f24c6203 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations.py @@ -116,6 +116,14 @@ def test_node_types_begin_create_or_update(self, resource_group): ], "placementProperties": {"str": "str"}, "provisioningState": "str", + "proxyAgentSettings": { + "addProxyAgentExtension": bool, + "enabled": bool, + "imds": {"inVMAccessControlProfileReferenceId": "str", "mode": "str"}, + "keyIncarnationId": 0, + "wireServer": {"inVMAccessControlProfileReferenceId": "str", "mode": "str"}, + }, + "scaleInPolicy": {"mode": "str"}, "secureBootEnabled": bool, "securityEncryptionType": "str", "securityType": "str", @@ -302,3 +310,54 @@ def test_node_types_begin_start(self, resource_group): # please add some check logic here by yourself # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_node_types_begin_start_fault_simulation(self, resource_group): + response = self.client.node_types.begin_start_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"parameters": "fault_simulation_content"}, + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_node_types_begin_stop_fault_simulation(self, resource_group): + response = self.client.node_types.begin_stop_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"simulationId": "str"}, + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_node_types_get_fault_simulation(self, resource_group): + response = self.client.node_types.get_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"simulationId": "str"}, + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy + def test_node_types_list_fault_simulation(self, resource_group): + response = self.client.node_types.list_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations_async.py b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations_async.py index ebfccedfef85..5121025a6df9 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations_async.py +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/generated_tests/test_service_fabric_managed_clusters_management_node_types_operations_async.py @@ -120,6 +120,14 @@ async def test_node_types_begin_create_or_update(self, resource_group): ], "placementProperties": {"str": "str"}, "provisioningState": "str", + "proxyAgentSettings": { + "addProxyAgentExtension": bool, + "enabled": bool, + "imds": {"inVMAccessControlProfileReferenceId": "str", "mode": "str"}, + "keyIncarnationId": 0, + "wireServer": {"inVMAccessControlProfileReferenceId": "str", "mode": "str"}, + }, + "scaleInPolicy": {"mode": "str"}, "secureBootEnabled": bool, "securityEncryptionType": "str", "securityType": "str", @@ -323,3 +331,58 @@ async def test_node_types_begin_start(self, resource_group): # please add some check logic here by yourself # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_node_types_begin_start_fault_simulation(self, resource_group): + response = await ( + await self.client.node_types.begin_start_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"parameters": "fault_simulation_content"}, + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_node_types_begin_stop_fault_simulation(self, resource_group): + response = await ( + await self.client.node_types.begin_stop_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"simulationId": "str"}, + ) + ).result() # call '.result()' to poll until service return final result + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_node_types_get_fault_simulation(self, resource_group): + response = await self.client.node_types.get_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + parameters={"simulationId": "str"}, + ) + + # please add some check logic here by yourself + # ... + + @RandomNameResourceGroupPreparer(location=AZURE_LOCATION) + @recorded_by_proxy_async + async def test_node_types_list_fault_simulation(self, resource_group): + response = self.client.node_types.list_fault_simulation( + resource_group_name=resource_group.name, + cluster_name="str", + node_type_name="str", + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/pyproject.toml b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/pyproject.toml index 427f8003fed3..7d4bb82da555 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/pyproject.toml +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/pyproject.toml @@ -13,17 +13,16 @@ authors = [ description = "Microsoft Azure Servicefabricmanagedclusters Management Client Library for Python" license = "MIT" classifiers = [ - "Development Status :: 5 - Production/Stable", + "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = [ "azure", "azure sdk", @@ -79,7 +78,7 @@ package_name = "azure-mgmt-servicefabricmanagedclusters" package_nspkg = "azure-mgmt-nspkg" package_pprint_name = "Service Fabric Managed Clusters Management" package_doc_id = "" -is_stable = true +is_stable = false is_arm = true title = "ServiceFabricManagedClustersManagementClient" need_msrestazure = false diff --git a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/tsp-location.yaml b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/tsp-location.yaml index 8deccfc797c8..6e5ea7aa250e 100644 --- a/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/tsp-location.yaml +++ b/sdk/servicefabricmanagedclusters/azure-mgmt-servicefabricmanagedclusters/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/servicefabricmanagedclusters/resource-manager/Microsoft.ServiceFabric/ServiceFabricManagedClusters -commit: 0d9b77817effe915b68e20d1a1830bf3b682cbd3 +commit: cfd58963682948f5242b945bc6152c4e54c88c0c repo: Azure/azure-rest-api-specs additionalDirectories: